日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

移动架构11_建造者模式

發布時間:2024/3/13 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 移动架构11_建造者模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Android移動架構匯總 1、定義 將一個復雜的構建與他的表示分離,使同樣的構建過程可以創建不同的表示。通俗的講,將對象的復雜創建和對象的使用分離開,這樣對象的創建時可以定制不同的類型的屬性,而對象的使用只關注于調用。 2、角色 以找房子為例,進行說明: 抽象建造者:給出一個抽象的接口,定義了各個工人所需要進行的工作。這些工作是為了完成對房子的創建,就像工地會有指導手冊一樣。 /** * 建造者角色 * 工人接口,定義了各個工人所需要進行的工作 * 并不負責具體的建造 * * 同時房子是具體的(農民工)建造的 所以需要有返回房子的方法 * @author tucheng * */ public interface Build { public void makeWindow();public void makeFloor();public Room getRoom();}

?

具體建造者:具體建造者,具體的建造者(農民工)去造房子。房子造完后需要將房子還給房屋主人,所以要有返回房子的方法。 public class WorkBuilder implements Build{private Room room=new Room();@Overridepublic void makeWindow() {room.setFloor("地板 ");}@Overridepublic void makeFloor() {room.setWindow("窗戶");}@Overridepublic Room getRoom() {return room;}}

?

設計者(指導者): 他知道房子怎么設計 他會只會工人去建造-換做程序代碼中,他也肯定會持有工人的這個對象的引用 對工人所具備的能力和行為有很深的了解。 從整體角度出發,什么樣的房子都能跟你建成。他所有具備的功能可以覆蓋你完整的需求。哪怕業主只提出建個非常簡單的房子,但是他所具備的能力必須全部覆蓋-代碼中:所有提出的需求在設計者這個類里面都能找得到。 public class Designer {public void order(Build build) {build.makeFloor();build.makeWindow(); }}

?

產品(房子): 房子會有那些屬性 public class Room {private String window;private String floor;public String getWindow() {return window; }public void setWindow(String window) {this.window = window; }public String getFloor() {return floor; }public void setFloor(String floor) {this.floor = floor; }@Override public String toString() {// TODO Auto-generated method stubreturn "---->floor "+floor+" window "+window; }}

?

創建對象: public static void main(String[] args){Build worker = new WorkBuilder();Designer designer = new Designer();designer.order(worker);System.out.print(">>> "+worker.getRoom()); }

?

3、使用場景 復雜的對象 不同的表示方法 在實際的使用場景中,可能不會嚴格按照上述的模式進行設計,如通常沒有抽象建造者和設計者,具體建造者中會有一個內部類保存設置的屬性 建造者: public class WorkBuilder {private RoomParams params;public WorkBuilder(){params = new RoomParams(); }public WorkBuilder makeWindow(String window){params.window = window;return this; }public WorkBuilder makeDoor(String door){params.door = door;return this; }public WorkBuilder makeChat(String chat){params.chat = chat;return this; }public WorkBuilder makeFloor(String floor){params.floor = floor;return this; }public Room build(){Room room = new Room();room.apply(params);return room; }class RoomParams{public String window;public String floor;public String door;public String chat; } }

?

產品: public class Room {private String window;private String floor;private String door;private String chat;public void apply(WorkBuilder.RoomParams params){window = params.window;floor = params.floor;door = params.door;chat = params.chat; }}

?

使用: WorkBuilder builder = new WorkBuilder(); Room room = builder.makeChat("椅子") .makeDoor("門") .makeFloor("地板") .makeWindow("窗戶") .build();

?

4、常見的使用場景 AlterDialog

總結

以上是生活随笔為你收集整理的移动架构11_建造者模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。