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
    收藏
    关注
    评论
  • 相关阅读:
    使用SQLite做本地数据缓存的思考
    毕业后第一次跳槽面试的点滴记录
    Nancy基于JwtBearer认证的使用与实现
    谈谈Nancy中让人又爱又恨的Diagnostics【上篇】
    CentOS 7.x 防火墙开放端口相关用法记录
    浅析如何在Nancy中使用Swagger生成API文档
    浅析如何在Nancy中生成API文档
    初探CSRF在ASP.NET Core中的处理方式
    微信小程序支付简单小结与梳理
    浅析Content Negotation在Nancy的实现和使用
  • 原文地址:https://www.cnblogs.com/Joy-et/p/4830974.html
Copyright © 2011-2022 走看看