07/02/19 14:57:18
よく考えたら、stateパターンとStrategyパターンは、
視点が違うだけで同じものじゃないか? 以下、stateパターン。
import sys
import exceptions
class _StateTemplate(object): # Abstract なつもり
def _showMessage(self):
raise exceptions.NotImplementedError, '%s' %`self.__class__`
class myState1(_StateTemplate):
def __init__(self):
pass
def _showMessage(self):
print u"こんにちは。" # ある状態(例えば昼)に対応した処理
class myState2(_StateTemplate):
def __init__(self):
pass
def _showMessage(self):
print u"今晩は。" # ある状態(例えば夜)に対応した処理
class acceptState(object):
def __init__(self):
self.__currentState = None
def setState(self, stateObject):
self.__currentState = stateObject # オブジェクトの受け入れ
def __getattr__(self, attrname):
return getattr(self.__currentState, attrname)