デザインパターン
シンプルなファクトリパターン(簡易ファクトリー)
ファクトリクラス、異なるパラメータ、異なるインスタンスの初期化に応じて、クラスのインスタンスを作成するために工場を添加する方法を追加。
戦略モード(戦略)
シンプルな植物の欠如
面向对象的编程,并不是类越多越好, 类的划分是为了封装, 但分类的基础是抽象, 具有相同属性和功能的对象的抽象集合才是类.
だから、いくつかのアクションは、単に異なる行動に見えますが、抽象的解析アルゴリズムは同じなので、それはクラスとして抽象化されなければなりません。
シンプルなファクトリパターン設計抽象基底クラス、他のクラスの実際の動作は、この基本クラスは、操作のファクトリクラスのインスタンスを初期化するために使用される継承します。
但是这种方式只能解决操作类的实例创建问题, 而且由于工厂本身包括了所有的实例创建方式. 所以每次维护和扩展都要改动这个工厂, 易导致代码需要重新部署, 面对算法的时常变动, 应该有个更合理的模式.
戦略パターンの導入
定义了算法家族, 分别封装起来, 让他们之间可以互相替换, 此模式让算法的变化不影响使用算法的客户.
戦略パターンの利点
戦略パターンの導入が可能にクライアントは、コンテキスト、コンテキストを理解する必要があり、クライアントが。その後、操作の対応するクラスメソッドの実装のコンテキストで呼び出され、結果がクライアントに返すことができ、初期化に対応する戦略カテゴリの通信を担当しています。これをデカップリングの方法はまた、多くの意味です。
各アルゴリズムは、独自のクラスを持ち、それが自分のインタフェースを介して試験装置とすることができるので、戦略パターンの別の利点は、ユニットテストクラスの実際の動作を容易にすることです。
パッケージング戦略のモードが変化する。実際の動作における異なるクラスに別のアルゴリズムは、抽象化された一般的な方法は、その最大の強みで別々に行います。
例
装飾的なパターン(デコレータ)
オブジェクトが動的にいくつかの追加の責任、増加した機能を追加するには、装飾的なパターンは、サブクラスよりも柔軟です。
デザインパターンの原則
単一責任の原則
クラスの場合、あなたはそれを変更するための、唯一の理由があるはずです。
クラスがあまりにも責任は、一緒に結合されたものと同等の機能は、弱める、または他の職務を実行する能力を抑制することができるデューティが変化するので、再構成された時間のコードは、クラスの責任の下で分離される場合。
開く - クローズド原則
ソフトウェアの場合は、拡大すべきとのシステムをやって。変更することなく、同じである、需要が当初の需要が変化していることから、決定し、その需要の変化に直面して、どのように設計することを期待することはできません?ここで使用される安定したソフトウェアが思考であります:
多扩展, 少修改.
デザイン部門では、十分、およびその他の新たな需要を行い、このクラスを作ってみると、その行にクラスを追加しています。
コントロールの原則の反転
また、IOC、依存性逆転を使用することができる。低い結合、高い凝集力の実際の性質として知られています。
- 高レベルのモジュールは、両方が抽象に依存すべき低レベルのモジュールに依存してはなりません。
- 要約は、詳細が抽象的に依存しなければならない、細部に頼るべきではありません。