• 创建者模式


    定义

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

    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
    收藏
    关注
    评论
  • 相关阅读:
    什么是MongoDb
    Python之人工智能:PyAudio 实现录音 自动化交互实现问答
    Python人工智能之初识接口
    cordova(安卓)(腾讯信鸽注册绑定与反绑定) 插件开发
    sencha touch 在安卓中横屏、竖屏切换 应用崩溃问题
    Sencha Touch 实战开发培训 电子书 基础篇
    wps 批量调整图片大小 宏
    使用 crosswalk-cordova 打包sencha touch 项目,再也不用担心安卓兼容问题!
    Sencha Cmd 5.0.1.231 是坑爹货
    sencha touch api 使用指南
  • 原文地址:https://www.cnblogs.com/Joy-et/p/4830974.html
Copyright © 2020-2023  润新知