设计模式之创建者模式(代码片段)

amcomputer amcomputer     2022-12-08     697

关键词:

1 背景回顾

设计模式是一种思维方式,前人总结的最佳实践,也是一种态度,一种进步。
软件过程里面设计模式一共有23种,一般分为3类。即创建型,结构性型,行为型。其中:
****创建型5种: **** 解决了创建对象的烦恼
单例模式,工厂模式,抽象工厂模式,建造者模式,原型模式

结构性型7种: 解决了如何让类组合起来完成复杂的功能
适配器模式,桥接模式,装饰模式,组合模式,外观模式,享元模式,代理模式,

行为型11种: 解决了类之间的控制关系。
模版方法模式,命令模式,迭代器模式,观察者模式,中介者模式,备忘录模式,状态模式,策略模式,职责链模式,访问者模式,解释器模式。

如果想要学习并掌握这些设计模式,最好是编码和画图理解。

简单工厂:## 1 背景回顾

设计模式是一种思维方式,前人总结的最佳实践,也是一种态度,一种进步。
软件过程里面设计模式一共有23种,一般分为3类。即创建型,结构性型,行为型。其中:
**创建型5种: ** 解决了创建对象的烦恼
单例模式,工厂模式,抽象工厂模式,建造者模式,原型模式

结构性型7种: 解决了如何让类组合起来完成复杂的功能
适配器模式,桥接模式,装饰模式,组合模式,外观模式,享元模式,代理模式,

行为型11种: 解决了类之间的控制关系。
模版方法模式,命令模式,迭代器模式,观察者模式,中介者模式,备忘录模式,状态模式,策略模式,职责链模式,访问者模式,解释器模式。

如果想要学习并掌握这些设计模式,最好是编码和画图理解。

2 创建者模式

在这里插入图片描述

在这里插入图片描述
需要定义好4个角色:
bulider,product,worker,director

package com.yang.create.builder;

public interface Build 
    void BuildA();//打地基
    void BuildB();//钢筋
    void BuildC();//铺电线
    void BuildD();//搞粉刷

    Product getProduct();


具体的产品

package com.yang.create.builder;

public class Product 
    private  String buildA;
    private  String buildB;
    private  String buildC;
    private  String buildD;

    @Override
    public String toString() 
        return super.toString();
    

    public String getBuildA() 
        return buildA;
    

    public void setBuildA(String buildA) 
        this.buildA = buildA;
    

    public String getBuildB() 
        return buildB;
    

    public void setBuildB(String buildB) 
        this.buildB = buildB;
    

    public String getBuildC() 
        return buildC;
    

    public void setBuildC(String buildC) 
        this.buildC = buildC;
    

    public String getBuildD() 
        return buildD;
    

    public void setBuildD(String buildD) 
        this.buildD = buildD;
    



工人生产产品:

package com.yang.create.builder;
//工人
public class Worker implements Build


    private  Product product;
    public Worker( ) 
        this.product = new Product();
    

    @Override
    public void BuildA() 
        product.setBuildA("打地基");
        System.out.println("打地基");
    
    @Override
    public void BuildB() 
        product.setBuildB("铺电线");
        System.out.println("铺电线");
    
    @Override
    public void BuildC() 
        product.setBuildC("钢筋");
        System.out.println("钢筋");
    
    @Override
    public void BuildD() 
        product.setBuildD("搞粉刷");
        System.out.println("搞粉刷");
    

    @Override
    public Product getProduct() 
        return product;
    


指挥者定义步骤
package com.yang.create.builder;

import javafx.util.Builder;

//指挥者,去指挥如何去构建一个工程的步骤,指挥工人去做
public class Director

public Product build(Worker worker)
    worker.BuildA();
    worker.BuildC();
    worker.BuildB();
    return  worker.getProduct();


测试:

```java
package com.yang.create.builder;

public class Test 

    public static void main(String[] args) 
        //指挥大人
        Director director = new Director();
        //指挥工人做事情
       Product product = director.build(new Worker());
        System.out.println(product.toString());
    


测试结果:
在这里插入图片描述
只需要在指挥者那里改变执行顺序即可:4个步骤都执行(先刷粉)
在这里插入图片描述

在这里插入图片描述

主要是理解4个角色之间的关系。

python之常用设计模式(创建型模式篇)(代码片段)

Python之常用设计模式一、设计模式分类1.创建型模式工厂方法模式、抽象工厂模式、建造者模式、原型模式、单例模式2.结构型模式适配器模式、桥模式、组合模式、装饰模式、外观模式、享元模式、代理模式3.行为型模式解释器... 查看详情

设计模式之简单工厂模式(创建型)(代码片段)

定义简单工厂模式又称静态工厂模式。可以根据参数的不同返回不同类的实例。定义一个类来创建其它类的实例。角色简单工厂模式包含如下角色Factory:工厂角色Product:抽象产品角色ConcreteProduct:具体产品角色简单实例publicabst... 查看详情

创建型设计模式之原型模式(代码片段)

...式的原型模式与单例模式是密不可分的,这也是最常用的设计模式之一。原型模式是一种非常简单的设计模式。这里除了基本介绍和演示,还详细介绍了Java中原型模式的本质。一、介绍  同样,先来看一下《研磨设计模式》... 查看详情

设计模式之原型模式(代码片段)

原型模式(PrototypePattern):用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。 作用(解决的问题):简化对象的创建过程。 优点: 1、当创建对象的实例较为复杂的时候,使用原型模式可以简化... 查看详情

设计模式---对象创建模式之构建器模式(builder)(代码片段)

...r模式也叫建造者模式或者生成器模式,是由GoF提出的23种设计模式中的一种。Builder模式是一种对象创建型模式之一,用来隐藏复合对象的创建过程,它把复合对象的创建过程加以抽象,通过子类继承和重载的方式,动态地创建... 查看详情

设计模式之创建者模式(代码片段)

1背景回顾设计模式是一种思维方式,前人总结的最佳实践,也是一种态度,一种进步。软件过程里面设计模式一共有23种,一般分为3类。即创建型,结构性型,行为型。其中:****创建型5种:****解... 查看详情

创建型模式之抽象工厂模式(代码片段)

介绍参见菜鸟教程下面给出C++的一个例子#include<iostream>#include<memory>usingnamespacestd;//shap接口classshappublic:virtualvoiddraw();;//shap接口的实现类classRect:publicshappublic:voiddraw()std::cout<<" 查看详情

设计模式之工厂方法模式(代码片段)

设计模式之工厂方法模式(一)什么是工厂方法模式  工厂方法模式也称为多态工厂模式,也是对象的创建模式。定义了一个创建产品对象的工厂接口或抽象类,将实际创建工作推迟到它的实现类或子类当中。核心工厂类不再... 查看详情

设计模式之工厂方法模式(代码片段)

什么时候需要对象的创建与使用分离对于不同类型的产品创建,使用不同的工厂类实现对象创建难度不同,比如某个service用到dao,dao的实现有redis,mysql,mongodb,创建dao的难度不同,需要的细节不同,如果把创建代码放到service... 查看详情

设计模式之原型模式(代码片段)

设计模式之原型模式Intro简介原型模式,用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象原型模式其实就是从一个对象再创建另外一个可定制的对象而且不需要知道任何创建的细节。实现方式实现方式大致... 查看详情

设计模式之原型模式(代码片段)

什么原型模式原型模式是指通过原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象,属于创建型模式。在程序里面一般都是基于二进制流的复制。浅克隆packagecom;importjava.io.*;importjava.util.List;publicclassConcretePrototypeimp... 查看详情

设计模式之建造者模式(创建型)(代码片段)

模式定义建造者模式属于23种设计模式中的创建型模式,可以理解为创建对象的一种很好的方法。所谓建造者模式就是将组件和组件的组件过程分开,然后一步一步建造一个复杂的对象。所以建造者模式又叫生成器模式。建造者... 查看详情

创建型模式之--创建者模式(代码片段)

1、变化是永恒的制作奔驰、宝马的车辆模型,汽车的启动、停止、喇叭声音、引擎声音先后顺序由客户控制。每个车都是一个产品。在CarModel中我们定义了一个setSequence方法,车辆模型的这几个动作要如何排布,是在... 查看详情

23种设计模式创建型模式详细介绍之工厂模式(代码片段)

23种设计模式【创建型模式】详细介绍之【工厂模式】设计模式的分类和应用场景总结工厂模式抽象工厂模式设计模式的分类和应用场景总结可以查看专栏设计模式:设计模式工厂模式工厂模式是一种创建型设计模式,它... 查看详情

23种设计模式创建型模式详细介绍之工厂模式(代码片段)

23种设计模式【创建型模式】详细介绍之【工厂模式】设计模式的分类和应用场景总结工厂模式抽象工厂模式设计模式的分类和应用场景总结可以查看专栏设计模式:设计模式工厂模式工厂模式是一种创建型设计模式,它... 查看详情

设计模式之建造者模式——builder(代码片段)

...建造者模式,又名生成器模式、构建者模式等,是创建型设计模式之一。用于将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。1.适用性:对象的创建比较复杂、有多种创建形式时创建复杂对象... 查看详情

创建型设计模式之原型模式(代码片段)

原型模式概述优缺点优点:1.java自带的原型模式是基于内存二进制流的拷贝,比直接new一个对象性能上提升许多2.使用原型模式将对象复制一份并将其状态保存起来,简化创建对象的过程,以便在需要的时候使用缺点:1.需要为... 查看详情

设计模式之简单工厂模式(代码片段)

什么时候需要根据参数不同创建同一父类下不同子类将对象的创建与对象的使用分离,比如service负责使用dao,而不应该负责创建dao;否则,同一个dao的创建会出现在很多service,一旦需要修改,不仅违背开闭原则,而且改动面很... 查看详情