建造者模式
来源:互联网 发布:淘宝极有家可靠吗 编辑:程序博客网 时间:2024/06/11 05:17
一、什么是建造者模式
Builder模式也叫建造者模式或者生成器模式,是由GoF提出的23种设计模式中的一种。Builder模式是一种对象创建型模式之一,用来隐藏复合对象的创建过程,它把复合对象的创建过程加以抽象,通过子类继承和重载的方式,动态地创建具有复合属性的对象。
二、建造者模式的结构
三、建造者模式应用场景
- 对象的创建:Builder模式是为对象的创建而设计的模式
- 创建的是一个复合对象:被创建的对象为一个具有复合属性的复合对象
- 关注对象创建的各部分的创建过程:不同的工厂(这里指builder生成器)对产品属性有不同的创建方法
package com.dw.test;/* * 工程队 */public interface HouseBuilder { public void makeFloor(); public void makeWall(); public void makeHousetop(); public House getHouse();}
package com.dw.test;//设计者public class HouseDirector { public void makeHouse(HouseBuilder builder) { builder.makeFloor(); builder.makeWall(); builder.makeHousetop(); }}
package com.dw.test;//修平方public class PingFangBuilder implements HouseBuilder { House house=new House(); @Override public House getHouse() { return this.house; }@Overridepublic void makeFloor() {house.setFloor("修平房-->地板");}@Overridepublic void makeWall() {house.setWall("平房-->墙");}@Overridepublic void makeHousetop() {house.setHousetop("平方-->屋顶");}}
package com.dw.test;//房子public class House {// 地板private String floor;// 墙private String wall;// 屋顶private String housetop;public String getFloor() {return floor;}public void setFloor(String floor) {this.floor = floor;}public String getWall() {return wall;}public void setWall(String wall) {this.wall = wall;}public String getHousetop() {return housetop;}public void setHousetop(String housetop) {this.housetop = housetop;}}
package com.dw.test;public class MainClass {/*一、什么是建造者模式Builder模式也叫建造者模式或者生成器模式,是由GoF提出的23种设计模式中的一种。Builder模式是一种对象创建型模式之一,用来隐藏复合对象的创建过程,它把复合对象的创建过程加以抽象,通过子类继承和重载的方式,动态地创建具有复合属性的对象。 三、建造者模式应用场景 对象的创建:Builder模式是为对象的创建而设计的模式- 创建的是一个复合对象:被创建的对象为一个具有复合属性的复合对象- 关注对象创建的各部分的创建过程:不同的工厂(这里指builder生成器)对产品属性有不同的创建方法*/public static void main(String[] args) {//由工程队来修HouseBuilder builder=new PingFangBuilder();/*builder.makeFloor();builder.makeWall();builder.makeHousetop();*///给设计者来做HouseDirector director=new HouseDirector();director.makeHouse(builder);House house=builder.getHouse();System.out.println(house.getFloor());System.out.println(house.getWall());System.out.println(house.getHousetop()); }}
0 0
- Builder 建造者模式
- 建造者模式
- 设计模式-------建造者
- 建造者模式
- 建造者模式(Builder)
- 建造者模式(Builder)
- 建造者模式
- 建造者模式 - builder
- 建造者模式
- Builder建造者模式
- 建造者模式(Builder)
- 建造者模式(builder)
- 建造者模式
- java建造者模式
- 建造者模式
- 建造者模式
- 建造者模式(Builder)
- 建造者模式
- UFLDL Exercise: Implement deep networks for digit classificationz
- bss,data,text,rodata,堆,栈,常量段
- Jenkins的Linux的Slave的配置
- Android 仿 窗帘效果 和 登录界面拖动效果 (Scroller类的应用) 附 2个DEMO及源码
- 第13周项目1整型数组
- 建造者模式
- Eclipse上的Web项目调试
- OpenWRT(小米路由器使用系统)组建N2N VPN网络实现内网设备之间的相互访问
- NSTimer传多个参数
- python PIL bug: 'NoneType' object has no attribute 'bands' (解决)
- Jenkins的Windows Slave的配置
- 关于codeblocks的新建模板
- Mac下解决Eclipse内存溢出(OutOfMemoryError)的问题
- Android 仿美团网,大众点评购买框悬浮效果之修改版