シンプルなファクトリパターンの概要



問題を解決するために、プロセス指向の機能を理解するためにコンピュータを使用するための直感的な方法は、
カップリングの問題は、発生し
、短期的な解決策を
プログラムを維持し、拡大することは容易ではありませんように。
オブジェクト指向のために、カプセル化、継承によって、多型は、カップリング手順を削減する、プログラミングのアイデアを適用する必要があります
修正し、再利用することが容易になり、拡張モードのプログラム設計の柔軟性を利用します。
より良いプログラミング習慣や思考を開発するために、
学習やデザインパターンを使用して起動を開始し
、内側に、デザインパターンを研究する計画がある願って、そして徐々に訓練を受け、訓練を受け、訓練を受けたから学びました!

シンプルなファクトリパターン:
特別なクラスを作成し、それが結合を低減するために、ビジネスロジックとインターフェース・ロジックの分離を達成するために、例異なるクラスのオブジェクトを作成します。

第二に、例えば、単純な電卓、達成するために:
抽象基本クラスの演算子を作成するための
抽象クラスを継承し、具体的な運用方法に抽象クラスを達成するため
の簡単な計算方法ファクトリクラスによって、簡単なファクトリクラスを作成するために、あなたが選択したクラスを作成する必要があり、状況に応じて選択されますオブジェクト。

抽象 クラスの操作{
     プライベート ダブル numberA = 0 ;
    プライベート ダブル numberB = 0 ; 

    公共 ダブルgetNumberA(){
         戻りnumberAと、
    } 

    公共 ボイド setNumberA(ダブルnumberA){
         この .nu​​mberA = numberA。
    } 

    公共 ダブルgetNumberB(){
         戻りnumberBと、
    } 

    公共 ボイド setNumberB(ダブルnumberB){
         この .nu​​mberB =numberB; 
    } 

    抽象 二重のgetResult()はスロー例外。
} 

/ ** 
 *继承抽象类、实现一些具体的运算
 * / 
クラスの追加は延び操作は{ 

    @Override 
    二重のgetResult(){
         戻り getNumberA()+ getNumberBを(); 
    } 
} 

クラス以下で延びている操作は{ 


    @Override 
    二重のgetResult(){
         戻り getNumberA() - getNumberBを(); 
    } 
} 

クラスムルは延び動作{


    @Override 
    二重のgetResult()がスロー例外{
         場合(getNumberB()!= 0 ){
             戻り getNumberA()/ getNumberBを(); 
        } {
             スロー 新しい例外( "除数为零、不を合法" ); 
        } 
    } 
} 

パブリック クラスし、SimpleFactory {
     パブリック操作chooseFunc(文字列動作){ 
        操作operation = NULL ;
        スイッチ(動作){
             場合 "+" 
                動作= 新しい追加();
                破ります;
            ケース " - " 
                操作 = レス();
                破ります;
            ケース「/」
                動作 = 新しいムル()。
                破ります;
            デフォルト
                するSystem.out.println( "继续扩展方法吧" );
                破ります; 
        } 
        戻り操作; 
    } 
} 

クラスのテスト{
     公共の 静的 ボイドメイン(文字列[]引数)をスロー例外{
         ダブル numberA = 23 ダブル numberB = 22 ; 
        文字列[]動作 = { "+"、 " - "、 "/" }。

        し、SimpleFactoryし、SimpleFactory = 新しいし、SimpleFactory(); 
        操作オペレーション = simpleFactory.chooseFunc(動作[2 ])。
        operation.setNumberA(numberA)。
        operation.setNumberB(numberB)。
        System.out.println(operation.getResult())。
    } 
}

 

  

 


おすすめ

転載: www.cnblogs.com/chen-ying/p/10979058.html