0

x 個の文字列を含むシステムがあります。これらの文字列は、いくつかのロジックに基づいて UI に表示されます。たとえば、文字列番号 1 は、現在の時刻が正午を過ぎた場合にのみ表示され、文字列 3 は、0 から 1 の間でランダムに生成された数値が 0.5 未満である場合にのみ表示されます。

これをモデル化する最良の方法はどのようになるでしょうか?

ロジックはコード内にあり、何らかの並べ替えまたは ID によって文字列にリンクされている必要がありますか?

ロジックは、文字列と共にどのように保存されるべきですか?

上記は、人々が私の論理に疑問を持ち始める前の理論的な例です。

4

1 に答える 1

1

通常は、リソース (文字列など) をロジックから分離しておくことをお勧めします。そのため、文字列を 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]
于 2013-06-19T10:22:50.180 に答える