如何将逻辑与对象连接

时间:2013-06-19 10:00:12

标签: data-structures logic

我有一个包含x个字符串的系统。这些字符串基于某些逻辑显示在UI中。例如,字符串编号1应仅显示当前时间是否超过正午,而字符串3仅显示0-1之间随机生成的数字是否小于0.5。

如何对此进行建模?

逻辑是否应该在代码中并通过某种类型或ID链接到字符串?

逻辑应该是如何存储字符串的吗?

注意以上是人们开始质疑我的逻辑之前的理论示例。

1 个答案:

答案 0 :(得分:1)

通常最好将资源(如字符串)与逻辑分开。所以按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]