创建者模式

定义

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

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);
        }
    }

结束语

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

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

时间: 2024-08-03 13:17:43

创建者模式的相关文章

Java设计模式之创建者模式,分享热爱编程的程序人生

PS:今天的23中设计模式中的创建者方式,至此告一段落.我今天带来的技术分享为创建者模式以及原型模式.当然在Java中这两种方式很常见,只不过我们写的次数确实有点低而已,但是这不是我不学它的借口!!! 创建者模式 无构建者模式代码示例:需求创建一个摩托车对象 并且使其开始运行. 发动机代码构建: 发动机代码构键 车架代码实例: 车架代码实例 轮胎机代码示例: 轮胎机代码示 摩托车对象实体类: 摩托车对象实体类 测试类: 测试类 总结:摩托车对象时一个大对象:构建过程中可能需要很多其他对象的使用,

创建者模式Builder

创建者模式: 分离对象子组件的单独构造(由Builder来负责)和装配(由Director负责),对象的构造比较复杂时使用 该模式. 优点: 由于实现了构建和装配的解耦.不同的构建器,相同的装配也可以做成不同的对象,相同的构建器,不同的装配顺序也可以生产成不同的对象.也就是实现了构造算法和装配算法的解耦,实现了更好的复用. 应用场景: StringBuilder类的append方法. SQL中的PreparedStatement JDOM中,DomBuilder SAXBuilder 创建者模式

(创建型模式四)创建者模式

package com.eyugame.modle; /** * 创建者模式 * * @author JYC506 * */ /*导演者*/ public class Director { IBuilder myBuilder=new MyBuilder(); public PhoneProduct createMiPhone() { myBuilder.setNameAndType("小米", "note"); myBuilder.des("售价2300

设计模式学习总结(五)创建者模式(Builder)

创建者模式,主要针对某些产品有类似的生产步骤,且有需要有先后顺序的进行各个部件的生成. 一.示例展示: 通过学习及总结,以下是我完成的创建者模式的示例: 1.创建产品类:Laptop public class Laptop { ArrayList LaptopParts = new ArrayList(); public void AddParts(string PartName) { LaptopParts.Add(PartName); } public void ShowPartList()

设计模式-行为型模式-创建者模式

Introduce: 创建者模式属于创建型模式,其核心思想是将一个复杂对象的构建算法与它的构成部件.组装方式分离,使得构建算法和组装方式可以独立应对变化,那么部件可以被复用,组装方式可以适应不同的变化,不同的构建算法可以得到不一样的结果.创建者模式主要由5部分构成:Abstrct Builder, Concrete Builder, Abstract Product, Concrete Product and Director. 我们可以举个例子,盖房子.房子是Abstract Product,

设计模式05_创建者模式

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/46489147 创建者模式:将一个复杂对象的构建和其表示分离开来,使得同样的构建过程可以创建出不同的表示. 例如我们需要盖一栋楼房,需要工人来砌墙,需要设计师来设计房子怎么盖,而这里的设计师本身是不干活的,它只是负责下命令让工人干活就行,而真正的创建者是工人,他们最后把楼房盖起来的.所以,最后是向民工要房子而不是向设计师要房子.在这里,房主(客户端)只需要请

Builder创建者模式

http://www.codeproject.com/Articles/42415/Builder-Design-Pattern In Elizabeth's day care center, the teacher helps the kids to build all kinds of toys to develop their creative skills. One of Elizabeth's favorite activities is to make animals with pl

java语言实现创建型设计模式—创建者模式

一.描述 创建者模式单独利用一个创建者类来创建对象并组建对象之间的关系,以简化客户端调用的复杂性.相对于抽象方法模式来说,创建者模式增加了一个单独的用于组装对象和对象之间关系的创建者类,由该类来负责对象的组装,以此来更加清晰地划分各个类的职责. 创建者模式将一个复杂对象的构建和它的表示分离,使得同样的构建过程可以创建不同的表示,而且对客户端屏蔽了对象的构建细节,该模式主要由5个部分组成:组装类.抽象创建者类,实现了抽象创建者类的具体创建者类,抽象产品类.实现了抽象产品类的具体产品类.在此可以看出

设计模式 - 创建者模式

其核心思想是将一个“复杂对象的构建算法”与它的“部件及组装方式”分离,使得构件算法和组装方式可以独立应对变化:复用同样的构建算法可以创建不同的表示,不同的构建过程可以复用相同的部件组装方式. 主要优缺点 在创建者模式中,客户端不再负责对象的创建与组装,而是把这个对象创建的责任交给其具体的创建者类,把组装的责任交给组装类,客户端只负责对象的调用,从而明确了各个类的职责. 虽然利用创建者模式可以创建出不同类型的产品,但是如果产品之间的差异巨大,则需要编写多个创建者类才能实现,如果这是结合工厂模式更好