Data structures 如何将逻辑与对象连接起来
我有一个包含x个字符串的系统。这些字符串显示在基于某些逻辑的UI中。例如,字符串1应仅显示当前时间是否超过正午,字符串3仅显示0-1之间随机生成的数字是否小于0.5 最好的建模方法是什么 逻辑应该只是在代码中,并通过某种排序或ID链接到字符串吗 逻辑应该与字符串一起存储吗Data structures 如何将逻辑与对象连接起来,data-structures,logic,Data Structures,Logic,我有一个包含x个字符串的系统。这些字符串显示在基于某些逻辑的UI中。例如,字符串1应仅显示当前时间是否超过正午,字符串3仅显示0-1之间随机生成的数字是否小于0.5 最好的建模方法是什么 逻辑应该只是在代码中,并通过某种排序或ID链接到字符串吗 逻辑应该与字符串一起存储吗 注意在人们开始质疑我的逻辑之前,上面是一个理论示例。通常最好将资源(如字符串)与逻辑分开。因此,通过ID引用字符串是一个好主意 似乎您有一系列规则,必须链接到字符串的显示。我会将这三个元素作为单独的实体:规则、字符串以及它们之
注意在人们开始质疑我的逻辑之前,上面是一个理论示例。通常最好将资源(如字符串)与逻辑分开。因此,通过ID引用字符串是一个好主意 似乎您有一系列规则,必须链接到字符串的显示。我会将这三个元素作为单独的实体:规则、字符串以及它们之间的链接 Python中的插图,必须简化:
STRINGS = {
'morning': 'Good morning',
'afternoon': 'Good afternoon',
'luck': 'you must be lucky today',
}
# predicates
import datetime, random
def showMorning():
return datetime.datetime.now().hour < 12
def showAfternoon():
return datetime.datetime.now().hour >= 12
def showLuck():
return random.random() > 0.5
# interconnection
RULES = {
'morning': showMorning,
'afternoon': showAfternoon,
'luck': showLuck,
}
# usage
for string_id, predicate in RULES.items():
if predicate():
print STRINGS[string_id]
字符串={
“早上好”:“早上好”,
“下午好”:“下午好”,
“运气”:你今天一定很幸运,
}
#谓词
导入日期时间,随机
def showMorning():
return datetime.datetime.now().hour<12
def show午后()
return datetime.datetime.now().hour>=12
def showLuck():
返回random.random()>0.5
#互联互通
规则={
“早上”:早上好,
“下午”:下午,
“运气”:炫耀运气,
}
#用法
对于字符串_id,RULES.items()中的谓词:
if谓词():
打印字符串[string\u id]