状態を表すクラス
例えば活性状態(Activate)、非活性状態(Deactivate)があるとする。
その時の振る舞いをそのクラスに実装する
class Activate def get_color "yellow" end def change_state(is_avtive) return self if is_active Deactive.new end end
class Deactivate def get_color "grey" end def change_state(is_avtive) return self if !is_active Active.new end end
class Button def initialize @is_avtive = true @state = Deactivate.new end def color @state.get_color end def click @state = @state.change_state(!@is_active) end end