私のプログラムのコントローラコンポーネントの戦略パターンを実装しようとしています。コントローラで戦略パターンを実装する方法
空のキャンバスにアイテムを作成できるCreateViewStateなどのビューステートが異なるため、createInput()
,addToModel()
およびstuff
のようなメソッドが必要です。
私が持っている別の状態は、以前に追加したアイテムを編集できるEditViewStateです。入力を選択し、その色やサイズなどを変更します。だから、selectInputAtLocation()
、またはchangeColor(java.awt.Color color)
またはchangeSize(int size)
あるコントローラが必要な方法...
私はそれについて移動の方法は、私がrepOK(のような一般的なメソッドを持ってIControllerインターフェースを作成している)、toString()メソッドと、よりthisWasTheLocation(のようなカップルint x、int y)ビューが画面上で押された位置をコントローラに渡すために静的に呼び出されます。
しかし、彼らの特定の仕事をするために私は彼らが持っている共通の方法はありません。私はdoStuff(Item item)
メソッドをインターフェイスに配置し、そこにコントローラロジックを入れて、クライアントコードがコード全体でIController.getInstance().doStuff(item)
を使用できるようにすることを考えていました。私が予測できる限り、特定のメソッドを呼び出すとコントローラーをキャストする必要があります(editControllerの場合はchangeColor()
、createControllerの場合はcreateInput()
)。
インターフェイスでdoStuff()
メソッドを作成した場合は、特にeditController(これは7-8以上のメソッドがあります)について多くのifステートメントを実装する必要があります。
このシステム全体をどのように設計する必要がありますか?
P.S:Controllers
したがってgetInstance()
私はトンに開始あなたの質問にもう一度答えてください。残念ながら、私はあなたのコースが現在あなたに教えようとしていること、そしてあなたがどれほど遠くにあるのかを知らないので、あまりにも多くの前提があります。もっと具体的な質問を投稿できるのであれば、私はさらに助けてくれるかもしれません。 'if'文がうまくいけば何も問題はありません。投稿する作業コードがある場合は、改善を提案するのに役立ちます。 – Brad