2013-06-19 98 views
0

我有一個包含x個字符串的系統。這些字符串顯示在基於某種邏輯的用戶界面中。例如,字符串編號1應該只顯示當前時間是否過去,如果0-1之間隨機生成的數字小於0.5,則只顯示字符串3。如何將邏輯與對象連接

這將如何建模?

邏輯是否應該在代碼中並通過某種類型或ID鏈接到字符串?

邏輯應該如何與字符串一起存儲?

備註以上是人們開始質疑我的邏輯之前的理論示例。

回答

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]