设计模式-------------------------建造者模式

本文深入讲解了建造者模式的概念及其实现方式,通过角色、建造者和指挥者三个核心类的构建,展示了如何按顺序创建复杂对象,同时隐藏内部建造过程和细节。

说到建造者模式,建造物,比如:房子;建房子:先建造地基—做墙----窗户—盖板子-----楼梯。。。。

建造房子,都按照部位一步步建造出来的。

组装电脑:主板—电源----cpu----内存条----显卡。。。。
角色:头–身体—手----脚

这样的类型都属于建造形式,所以我们可以想到一种模式的是建造者模式:

代码实现:

比如角色:

public class Charactor  
{
   public void AddPart(string parts)
   {
        Debug.Log( parts );
   }
}

public interface Builder
{
    void BuildHead();
    void BuildBody();
    void BuildHand();
    void BuildFoot();
}

public class CharatorBuilder : Builder
{
    private Charactor charactor;
    public CharatorBuilder(Charactor charactor)
    {
        this.charactor = charactor;
    }
    public void BuildHead()
    {
        //实例化一个头的预制体,将预制体添加到charactor的子节点下
        charactor.AddPart( "头" );
    }
    public void BuildBody()
    {
        //实例化一个身体的预制体,将预制体添加到charactor的子节点下
        charactor.AddPart( "身体" );
    }

    public void BuildFoot()
    {
        //实例化一个脚的预制体,将预制体添加到charactor的子节点下
        charactor.AddPart( "脚" );
    }

    public void BuildHand()
    {
        //实例化一个手的预制体,将预制体添加到charactor的子节点下
        charactor.AddPart( "手" );
    }
    
}

//指挥建造的顺序
public class BuilderDir
{
    public void Direction(Builder builder)
    {
        builder.BuildBody( );
        builder.BuildFoot( );
        builder.BuildHand( );
        builder.BuildHead( );
    }
}

//测试
public  class Test
{
    Charactor charactor ;
    CharatorBuilder charatorBuilder;
    BuilderDir builderDir;
    public void Init()
    {
        charactor = new Charactor( );
        charatorBuilder = new CharatorBuilder( charactor );
        builderDir = new BuilderDir( );
    }

    public void test()
    {
        builderDir.Direction( charatorBuilder );
    }

}

这就是个简单的建造者模式这里的建造者主要是3个类:

角色(显示的效果) -----建造者(建造的部位)------指挥者 (建造的顺序等等)

总的来说:
用户只需要给出指定复杂对象的类型和内容;
建造者模式负责按顺序创建复杂对象(把内部的建造过程和细节隐藏起来)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值