zoukankan      html  css  js  c++  java
  • 创建者模式

    定义

    创建者模式:核心思想---将对象创建的变化部分与不变部分分离,将不变的部分抽象到基类中,将变化部分的创建延迟到具体类的实现过程中去。

    UML表示

    (因为工具使用不是很给力,画得很粗糙):

    示例

    下面是自己在整理思路时所写的一个例子,具体的实现用伪代码代替。

      public class Computer
        {
            public object Cpu { get; set; }
            public object MainBoard { get; set; }
            public object Memory { get; set; }
        }
        public abstract class ComputerBuilder
        {
            protected Computer computer;
            public abstract void BuildCpu();
    
            public abstract void BuildMainBoard();
            public abstract void BuildMemory();
    
            public Computer GetComputer()
            {
                BuildMainBoard();
                BuildCpu();
                BuildMemory();
                return this.computer;
            }
        }
    
        public class CmdComputerBuilder : ComputerBuilder
        {
    
            public override void  BuildCpu()
            {
                //创建cmdCpu的实际业务
                computer.Cpu=new object();
            }
           
            public override void  BuildMainBoard()
            {
                //创建cmd主板的实际业务
                computer.MainBoard = new object();
            }
    
            public override void  BuildMemory()
            {
                //创建cmd内存的实际业务
                computer.Memory = new object();
            }
        }
        public class IntelComputerBuilder : ComputerBuilder
        {
    
            public override void BuildCpu()
            {
                //创建IntelCpu的实际业务
                computer.Cpu = new object();
            }
    
            public override void BuildMainBoard()
            {
                //创建Intel主板的实际业务
                computer.MainBoard = new object();
            }
    
            public override void BuildMemory()
            {
                //创建Intel内存的实际业务
                computer.Memory = new object();
            }
        }
    
        public class ComputerFactory
        {
            public static Computer BuildComputer(ComputerBuilder builder)
            {
                return builder.GetComputer();
            }
        }
    
        public class Client
        {
            public Computer BuyComputer()
            {
                ComputerBuilder builder = new IntelComputerBuilder();
               return ComputerFactory.BuildComputer(builder);
            }
        }

    结束语

    创建者模式有区别与工厂模式,工厂模式更多的是针对单个明确类型的创建过程,而创建者模式则是对于复杂对象的创建过程,拆分变化。

    具体的实现与运用还是要去实践的。睡觉去!

    Top
    收藏
    关注
    评论
  • 相关阅读:
    关于unbox.any castclass ldobj
    SQL 语句 之 增删改查 (一)
    .NET(C#):使用SmtpClient发送带有图片和附件的电子邮件
    Ext.Net 1.2.0_演示 Ext.Net+QRCode 封装条形码控件
    局域网共享打印机(不需要密码)
    Windows 2003单用户单会话登录远程桌面
    不过如此
    CellMerge
    Windows Server 2008服务器支持iso文件下载的方法
    SQL2008 Express 无法打开备份设备 '‘xxxxx'。出现操作系统错误 5(拒绝访问。)。BACKUP DATABASE 正在异常终止。
  • 原文地址:https://www.cnblogs.com/Joy-et/p/4830974.html
Copyright © 2011-2022 走看看