通常は、リソース (文字列など) をロジックから分離しておくことをお勧めします。そのため、文字列を ID で参照することをお勧めします。
文字列の表示にリンクする必要があるルールがたくさんあるようです。ルール、文字列、およびそれらの間のリンクという 3 つすべてを個別のエンティティとして保持します。
必然的に簡略化された 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]