设计模式之建造者模式(Builder)
2013-10-03 21:20
239 查看
前面介绍过工厂模式了,如果我们需要一辆车并不需要知道车是如何、从哪个工厂里生产出来的。今天介绍的建造者模式就要说明一下车子是如何制造的。
一辆汽车需要不同的原件进行组装而成的。
class Tyre{
public void createTyre(){
System.out.println("生产了一个轮胎");
}
}
class Seat{
public void createSeat(){
System.out.println("生产了一个座椅");
}
}
class Car{
Car(Tyre t,Seat s){
System.out.println("生产了一辆汽车!");
}
}
工厂里的工人们知道如何制造车子的轮胎、方向盘、底盘、发动机等等。。。
//工人懂得制造部件和汽车,但是不知道需要什么零件,先造那个、后造哪个
interface AbstractWorker{
public Tyre createTyre();
public Seat createSeat();
public Car getCar();
}
class Worker implements AbstractWorker{
private Tyre tyre;
private Seat seat;
public Seat createSeat() {
return seat = new Seat();
}
public Tyre createTyre() {
// TODO Auto-generated method stub
return tyre = new Tyre();
}
public Car getCar() {
// TODO Auto-generated method stub
if(tyre!=null||seat!=null){
return new Car(tyre,seat);
}
System.out.println("没有设计师,造不出啊!");
return null;
}
但是作为高级工人,他们并不知道应该先做那个后做哪个,他们需要一位设计师,指挥他们。虽然设计师并不会制造零件。。(知识改变命运啊)
//设计师指导工人制造汽车
class Designer{
private Worker worker;
Designer(Worker worker){
this.worker = worker;
}
void createCar(){
worker.createSeat();
worker.createSeat();
}
}
执行主函数,就可以获得自己心仪的汽车啦!
public class BuilderPattern {
public static void main(String[] args){
Worker woker = new Worker();
Designer d = new Designer(woker);
d.createCar();
woker.getCar();
}
}
一辆汽车需要不同的原件进行组装而成的。
class Tyre{
public void createTyre(){
System.out.println("生产了一个轮胎");
}
}
class Seat{
public void createSeat(){
System.out.println("生产了一个座椅");
}
}
class Car{
Car(Tyre t,Seat s){
System.out.println("生产了一辆汽车!");
}
}
工厂里的工人们知道如何制造车子的轮胎、方向盘、底盘、发动机等等。。。
//工人懂得制造部件和汽车,但是不知道需要什么零件,先造那个、后造哪个
interface AbstractWorker{
public Tyre createTyre();
public Seat createSeat();
public Car getCar();
}
class Worker implements AbstractWorker{
private Tyre tyre;
private Seat seat;
public Seat createSeat() {
return seat = new Seat();
}
public Tyre createTyre() {
// TODO Auto-generated method stub
return tyre = new Tyre();
}
public Car getCar() {
// TODO Auto-generated method stub
if(tyre!=null||seat!=null){
return new Car(tyre,seat);
}
System.out.println("没有设计师,造不出啊!");
return null;
}
但是作为高级工人,他们并不知道应该先做那个后做哪个,他们需要一位设计师,指挥他们。虽然设计师并不会制造零件。。(知识改变命运啊)
//设计师指导工人制造汽车
class Designer{
private Worker worker;
Designer(Worker worker){
this.worker = worker;
}
void createCar(){
worker.createSeat();
worker.createSeat();
}
}
执行主函数,就可以获得自己心仪的汽车啦!
public class BuilderPattern {
public static void main(String[] args){
Worker woker = new Worker();
Designer d = new Designer(woker);
d.createCar();
woker.getCar();
}
}
相关文章推荐
- Java设计模式之建造者模式(Builder)
- 艾伟_转载:.NET设计模式:建造者模式(Builder Pattern)
- 23种设计模式之建造者模式(Builder)
- 设计模式之九:建造者模式(Builder)
- JAVA设计模式之 建造者模式【Builder Pattern】
- 【java设计模式】之 建造者(Builder)模式
- java设计模式-Builder建造者模式
- 我的设计模式之旅(4)――生成器(建造者)模式Builder
- 做一顿家常便饭,建造者设计模式(Builder)
- 设计模式(3) - Builder建造者模式
- .NET设计模式(4):建造者模式(Builder Pattern)
- c#设计模式- Builder模式(建造者模式)
- 设计模式之建造者模式(Builder)
- 设计模式——建造者模式【Builder Pattern】
- js原生设计模式——6复杂对象的构建—Builder建造者模式
- C++设计模式之Builder(建造者)模式
- C#设计模式之五建造者模式(Builder)【创建型】
- 设计模式读书笔记之建造者模式(Builder)
- .NET设计模式(4):建造者模式(Builder Pattern)
- 设计模式 - Builder模式(建造者模式)