设计模式-创建型模式-生成器
来源:互联网 发布:四班三倒倒班日历软件 编辑:程序博客网 时间:2024/06/04 18:28
创建型模式:抽象了实例化过程,它们帮助一个系统如何独立于如何创建、组合和表示它的哪些对象。一个创建型模式使用了继承改变实例化的类,而一个对象的实例化将委托给别一个对象来现实。
Builder模式:将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
适用必:1、当创建复杂对象的算法应该独立于该对象的组成部份以及他们的装配方式时
2、当构造过程必需允许被构造对象有不同的表示时
package builder;
public class ConcreteHouseBuilderA extends HouseBuilder{
private House house;
public ConcreteHouseBuilderA() {
house = new House();
}
public void BuildRoom(int roomNo) {
//you can create a new Room added to a House
house.roomNumber++;
}
public void BuildDoor(int room1, int room2) {
// you can create a new door assotiated with 2 room
// and added this door into a house
house.doorNumber++;
}
public House getHouse() {
return house;
}
}
package builder;
/*
* A house as a concrete product we got finally
*/
public class House {
int roomNumber;
int doorNumber;
public House() {
roomNumber = 0;
doorNumber = 0;
}
public int getRoomNumber() {
return roomNumber;
}
public int getDoorNumber() {
return doorNumber;
}
}
package builder;
/*
* An abstract Builder
*/
public abstract class HouseBuilder {
public abstract void BuildRoom(int roomNo);
public abstract void BuildDoor(int room1, int room2);
public abstract House getHouse();
}
package builder;
/*
* This class is a Director
*/
public class HouseDirector {
public void CreateHouse(HouseBuilder concreteBuilder) {
concreteBuilder.BuildRoom(1);
concreteBuilder.BuildRoom(2);
concreteBuilder.BuildDoor(1, 2);
//return builder.getHouse();
}
}
package builder;
/*
* A test client to create a house
* but we do not know how the room and door be created
*/
public class TestClient {
public TestClient() {
}
public static void main(String[] args) {
House myHouse = null;
ConcreteHouseBuilderA myHouseBuilder = new ConcreteHouseBuilderA();
HouseDirector myHouseDirector = new HouseDirector();
myHouseDirector.CreateHouse(myHouseBuilder);
myHouse = myHouseBuilder.getHouse();
System.out.println("My house has room :" + myHouse.getRoomNumber());
System.out.println("My house has door :" + myHouse.getDoorNumber());
}
}
- 设计模式-创建型-生成器
- 设计模式-创建型模式-生成器
- 设计模式--创建型--生成器模式
- 设计模式-创建型-builder生成器
- 设计模式---创建类型---生成器
- 生成器模式 创建型模式
- 设计模式之生成器(Builder)----对象创建型模式
- 设计模式笔记(4)---生成器模式(创建型)
- 设计模式-创建型模式之 Builder(生成器)
- 【设计模式基础】创建型模式 - 5 - 生成器(Builder)
- java设计模式(创建型)之生成器模式
- 【设计模式】创建型模式之生成器Builder
- Java设计模式(4)创建型:生成器模式
- 设计模式深入学习-Builder生成器(创建型模式 )
- 设计模式之对象创建型 — builder 生成器模式
- java创建型设计模式——生成器模式
- 创建模式-生成器模式
- 设计模式之建造者模式(生成器模式)(Builder) 创建型模式
- android Content Provider
- delphi实现删除XML结点
- 3.1 Shaping Regions 漂浮法
- SNMP用VC++6.0实现的方法
- 学习 C/C++的好的书籍
- 设计模式-创建型模式-生成器
- android开发我的新浪微博客户端-载入页面UI篇(1.1)
- android开发我的新浪微博客户端-载入页面sqlite篇(1.2)
- 四则表达式实现(dev cpp工具中运行通过,欢迎指正)
- Linux关机命令详解
- Bash编程 - 读写文件
- android开发我的新浪微博客户端-OAuth篇(2.1)
- boost::regex学习(转)
- 具有块范围的静态函数非法