<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      設計模式-創建型模式#建造者模式Builder

      設計模式-創建型模式#工廠方法FactoryMethod

      設計模式-創建型模式#抽象工廠AbstractFactory


      建造者模式
      將一個復雜的對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示。
      適用性
      1、當創建復雜對象的算法應該獨立于改對象的組成部分以及它們的裝配方式時。
      2、當構造過程必須允許被構造的對象有不同的表示時。
      參與者
      1、Builder
      為創建一個Product對象的各個部件指定抽象接口。
      2、ConcreteBuilder
      實現Builder的接口以構造和裝配該產品的各個部件。
      定義并明確它所創建的表示。
      提供一個檢索產品的接口。
      3、Director
      構造一個使用Builder接口的對象
      4、Product
      表示被構造的復雜對象。ConcreteBuilder創建該產品的內部表示并定義它
      的裝配過程。
      包含定義組成部件的類,包括將這些部件裝配成最終產品的接口。

      類圖:


      實線箭頭表示單向關聯,即:關聯類知道被關聯類的公共屬性及操作,但被關聯類 并不知道關聯類的公共屬性及操作。
      關聯單向、雙向之分。雙向關聯用沒有箭頭的實線表示 ,實線箭頭表示Object Message,也就是類間的消息發送,
      比如:方法調用和請求等等,這些都是從一方向另一方主動發出信息。 
      虛線箭頭表示兩個類之間存依賴關系。即:一個類引用另一個類。只存在單向依賴。 虛線箭頭表示Return Message,
      一般用于表示方法調用后的返回信息

      代碼中的表現:

      實線代表有引用的關聯,一般代碼中會直接有關聯的類的引用,但虛線就沒有,一般知識方法上的調用關系。如是而已。

      package com.dsp;
      
      public class Person {
      	private String head;
      	private String body;
      	private String foot;
      	public String getHead() {
      		return head;
      	}
      	public void setHead(String head) {
      		this.head = head;
      	}
      	public String getBody() {
      		return body;
      	}
      	public void setBody(String body) {
      		this.body = body;
      	}
      	public String getFoot() {
      		return foot;
      	}
      	public void setFoot(String foot) {
      		this.foot = foot;
      	}
      }
      

      package com.dsp;
      public class Man extends Person {
      
      }
      

      package com.dsp;
      
      public interface PersonBuilder {
      	void buildHead();
      	void buildBody();
      	void buildFoot();
      	
      	Person buildPerson();
      }
      

      package com.dsp;
      
      public class ManBuilder implements PersonBuilder {
      
      	Person person;
      	public ManBuilder() {
      		person = new Man();
      	}
      
      	@Override
      	public void buildHead() {
      		person.setHead("建造男人的頭");
      	}
      
      	@Override
      	public void buildBody() {
      		person.setBody("建造男人的身體");
      
      	}
      
      	@Override
      	public void buildFoot() {
      		person.setFoot("建造男人的腳");
      	}
      
      	@Override
      	public Person buildPerson() {
      		return person;
      	}
      
      }
      

      package com.dsp;
      
      public class PersonDirector {
      	public Person constructPerson(PersonBuilder pb){
      		pb.buildHead();
      		pb.buildBody();
      		pb.buildFoot();
      		return pb.buildPerson();
      	}
      }
      

      package com.dsp;
      
      public class Test {
      	public static void main(String[] args) {
      		PersonDirector pd = new PersonDirector();
      		Person person = pd.constructPerson(new ManBuilder());
      		
      		System.out.println(person.getHead());
      		System.out.println(person.getBody());
      		System.out.println(person.getFoot());
      	}
      }
      

      控制臺輸出:

      建造男人的頭
      建造男人的身體
      建造男人的腳


      posted @ 2015-06-14 22:30  Java夜未眠  閱讀(25)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 一个人免费观看WWW在线视频| 波多野结衣在线精品视频| 国产精品无码制服丝袜| 久久热这里只有精品66| 绥中县| 激情在线一区二区三区视频| 国产99青青成人A在线| 国产极品视频一区二区三区| 中文字幕av无码不卡| 少妇被无套内谢免费看| 亚洲人成人伊人成综合网无码| 国产亚洲亚洲国产一二区| 蜜桃视频在线免费观看一区二区 | 成人午夜大片免费看爽爽爽| 亚洲精品中文字幕无码蜜桃| 一区二区三区四区黄色片| 亚洲一区二区精品偷拍| 蓬莱市| 日本少妇自慰免费完整版| 欧美亚洲另类制服卡通动漫| 嫩草院一区二区乱码| 亚洲激情国产一区二区三区| 起碰免费公开97在线视频| 国厂精品114福利电影免费| 日韩熟女精品一区二区三区| 蜜臀av午夜精品福利| 国产午夜精品久久精品电影| 欧美老熟妇乱子伦牲交视频| 亚欧成人精品一区二区乱| 久久亚洲av午夜福利精品一区| 亚洲欧美激情在线一区| 骚虎视频在线观看| 亚洲人成网站在小说| 呼伦贝尔市| 2021国产成人精品久久| 欧美亚洲精品中文字幕乱码| 精品国产一区二区三区国产馆| 亚洲aⅴ男人的天堂在线观看| 熟女视频一区二区在线观看| 偷拍视频一区二区三区四区| 亚洲精品二区在线播放|