この記事では、携帯電話パッケージを適用する機能を実装するためのビルダーモードの使用について説明します。次のように、参照のために共有してください。
1。パターン定義
ビルダーは単に物事を構築するためにそれを理解していますが、ビルダーモデルは単純なものではなく、比較的複雑なものです。
2。モデルの例
1パターン分析
顧客が携帯電話パッケージに行く例を借りて、携帯電話パッケージを申請してこのモデルを説明する抽象分析の後に説明します。顧客Zhang Sanに関する次の情報を入手します。
コンピューター - ビルダー(さまざまな携帯電話パッケージを構築)
携帯電話パッケージ - 製品
2ビルダーモード静的モデリング
3つのコードの例
3.1製品の作成 - 携帯電話パッケージ
パッケージcom.demo.buider.model; public class mobilepackage {//電話代のプライベートフロートマネー; // sms private int shortinfo; //プライベートストリングミュージックのケイリング。 public float getMoney(){return money; } public void setMoney(float money){this.money = money; } public int getShortInfo(){return shortinfo; } public void setshortinfo(int shortinfo){this.shortinfo = shortinfo; } public string getMusic(){return music; } public void setMusic(string music){this.music = music; }}3.2ビルダーインターフェイス
パッケージcom.demo.buider.itf; import com.demo.buider.model.mobilepackage;/** *モバイルパッケージビルダー * * @author * */publicインターフェイスimobilebuilder {//モバイルパッケージのパブリックパッケージパブリックボイドbuildmoney(); //モバイルパッケージを構築するためのSMS public void buildshortinfo(); // cailing public void buildMusic(); //構築されたモバイルパッケージオブジェクトに戻るpublic mobilepackage getMobilePackage();}3.3特定のビルダーを確立します
特定のビルダー1
パッケージcom.demo.buider.itf; import com.demo.buider.base.abstractbasepackage; Import com.demo.buider.mobilepackage;/** *パッケージ1 * * @author maofw */public class mobilebuilderimpl1 void buildmoney(){this.mobilepackage.setmoney(20.0f); } // cailing public void buildMusic(){this.mobilepackage.setMusic( "Angel"); } //モバイルパッケージを構築するためのsms public void buildshortinfo(){this.mobilepackage.setshortinfo(400); } //構築されたモバイルパッケージオブジェクトに戻るpublic mobilepackage getMobilePackage(){return this.mobilepackage; }}特定のビルダー2
パッケージcom.demo.buider.itf; import com.demo.buider.base.abstractbasepackage; Import com.demo.buider.mobilepackage;/** *パッケージ2 * * @author maofw */public class mobilebuilderimpl2エクステンションablatebasepage for bildingmobilebilebiled void buildmoney(){this.mobilepackage.setmoney(30.0f); } // cailing public void buildmusic(){this.mobilepackage.setMusic( "sea"); } //モバイルパッケージを構築するためのSMS public void buildshortinfo(){this.mobilepackage.setshortinfo(600); } //構築されたモバイルパッケージオブジェクトに戻るpublic mobilepackage getMobilePackage(){return this.mobilepackage; }}3.4メンターの作成
パッケージcom.demo.buider.director; Import com.demo.buider.itf.imobilebuilder; Import com.demo.buider.model.mobilepackage;/** *モバイルパッケージインストラクター * * @author maofw * */public class mobiledirector {public createmobilepage(imobilepakede(imobilepile) (mobilebuilder!= null){//電話bill mobilebuilder.buildmoney(); //テキストメッセージをビルドMobileBuilder.BuildShortInfo(); // cailing mobilebuilder.buildmusic()を作成します。 //モバイルパッケージに戻るrunter mobilebuilder.getMobilePackage(); } nullを返します。 }}顧客に携帯電話のパッケージを注文させます
パッケージcom.demo.buider; import com.demo.buider.director.mobiledirector; Import com.demo.buider.itf.mobilebuilderimpl1; Import com.demo.buider.itf.mobilebuilderimpl2; Import com.demo.buider.buider.mobidel.mobilepakage; * @param args */ public static void main(string [] args){// MobileDirector MobileDirector = new MobileDirector(); //プラン1 mobilebuilderimpl1 mobilebuilderimpl1 = new mobilebuilderimpl1(); //プラン2 mobilebuilderimpl2 mobilebuilderimpl2 = new mobilebuilderimpl2(); printmessage(mobiledirector.createmobilepackage(mobilebuilderimpl1)); printmessage(mobiledirector.createmobilepackage(mobilebuilderimpl2)); }/*** printoutパッケージ情報*/public static void printmessage(mobilepackage mobilepackage){system.out.println( " - telcoding:" + mobilepackage.getmoney() + "/t sms:" + mobilepackage.getshortinfo() + "getmusepage() }}実行結果
-TEL:20.0 SMS:400ケーリング:エンジェル
-TEL:30.0 SMS:600 CAILING:DAHAI
3。モデルを設定する原則
複雑なオブジェクトを作成する1つのステップ
2。分離を構築し、表現します
3単一責任の原則
4.機会を使用します
1製品オブジェクトがその内部に複雑な構造があるとき
2複雑なオブジェクトを表現から分離する必要がある場合、異なる表現を作成する必要がある場合があります
3顧客から製品構造のパフォーマンスを隠す必要があるとき
Javaアルゴリズムの詳細については、このサイトに興味のある読者は、「Javaデータ構造とアルゴリズムのチュートリアル」、「Java操作DOMノードのヒントの要約」、「Javaファイルの要約およびディレクトリ操作のヒント」、「Java Cache操作のヒントの要約」というトピックを見ることができます。
この記事がみんなのJavaプログラミングに役立つことを願っています。