设计模式-Builder

抽象工厂: 创建一个抽象类型或接口,用来封装一系列产品的变化:也就是说 这种模式针对的变化点是(一系列产品,不同风格的产品)。

public abstract class GameAbstractFactory
{
    
public abstract Road createRoad();
    
public abstract Jungle createJungle();
    
public abstract House createHouse()
}

 

而Builder模式呢,主要针对的变化点是: 某 一部分变化. 假如我要建一所房子(房子由window,floor,ceiling,etc),但是你想改变的某一个window/floor/Ceiling。那你可以用Builder模式来解决

 

代码
public abstract class Builder
{
    
public abstract void builderDoor();
    
public abstract void builderwindows();
    
public abstract void builderFloor();
    
public abstract House GetHouse();
}
public class BuilderManager
{
    
private static Builder _builder;
    
public BuilderManager(Builder builder)
    {
        _builder 
= builder;
    }
    
public static House createHouse()
    {
        _builder.builderDoor();
        _builder.builderFloor();
        _builder.builderwindows();
        
return _builder.GetHouse();
    }
}

 

我觉得它吧创建房子的过程封装了, 客户端不需要知道房子是怎么创建的而只要知道返回的是房子类型。

posted on 2010-01-07 17:22  博览潇湘  阅读(178)  评论(0编辑  收藏  举报

导航