设计模式之Builder Model(笔记)

建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

建造者模式是在当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时适用的模式。

首先定义一个产品类Product

public class Product {

    List<String> list=new ArrayList<String>();
     public void add(String part){
         list.add(part);
     }

     public void show(){
        Iterator<String> iterator =list.iterator();
        while(iterator.hasNext()){
            String part=iterator.next();
            System.out.println(part);
        }
     }

}

接着定义一个builder接口,用来定义装配的方法

public interface IBuilder {

    public void buildePartA();

    public void buildePartB();

    public Product getProduct();
}

然后定义具体的建造者类

public class ConcreteBuilder1 implements IBuilder{

    private Product product=new Product();
    @Override
    public void buildePartA() {
        product.add("部件A");

    }

    @Override
    public void buildePartB() {
        product.add("部件B");
    }

    @Override
    public Product getProduct() {
        return product;
    }

}

public class ConcreteBuilder2 implements IBuilder {

    private Product product=new Product();
    @Override
    public void buildePartA() {
        product.add("部件C");
    }

    @Override
    public void buildePartB() {
        product.add("部件D");
    }

    @Override
    public Product getProduct() {
        return product;
    }

}

最后定义一个指挥者类Command

public class Command {

    public void construct(IBuilder builder){
        builder.buildePartA();
        builder.buildePartB();
    }
}

客户端代码

public static void main(String[] args) {

  //建造者模式
        Command command=new Command();
        IBuilder builder1=new ConcreteBuilder1();
        IBuilder builder2=new ConcreteBuilder2();

        //指挥者用ConcreteBuilder1的方法来创造产品
        command.construct(builder1);
        Product product1=builder1.getProduct();
        product1.show();

        command.construct(builder2);
        Product product2=builder2.getProduct();
        product2.show();

}
时间: 2024-10-02 01:39:43

设计模式之Builder Model(笔记)的相关文章

《Javascript 设计模式》-读书笔记

第七章   设计模式类别 一.设计模式有三种类别 1.创建型模式:专注于处理对象机制.包括:构造器.工厂.抽象.原型.单例.生成器 2.结构型模式:用于找出在不同对象之间建立关系密切的简单方法. 包括:装饰者.外观.享元.适配器.代理 3.行为模式:用于改善或简化系统中不同对象之间的通信.包括:迭代器.中介者.观察者.访问者 第八章   设计模式分类 <Javascript 设计模式>-读书笔记,布布扣,bubuko.com

设计模式学习--Builder

What Builder:将一个复杂的对象的构建和表示分离,使得同样的构建过程可以创建不同的表示. Why Builder也是创建型模式的一种,它是一步一步的向导式的创建一个复杂的对象,Builder接口定义创建复杂对象的零部件,Director根据客户端端传入的builder按照一定的步骤创建完成复杂对象的创建. Builder适用于比较复杂的对象的创建,该对象的创建有比较稳定的步骤或者比较稳定的"零件",但是"零件"(步骤)内部的构建是复杂多变的. 设计模式书中

设计模式--单例模式(学习笔记)

定义:      单例模式:保证一个类只有一个实例,并且提供一个访问它的全局访问点.(<大话设计模式定义>): 单例模式分为两种: 1>饿汉式单例类:自己被加载时就将自己实例化. 例子:       private SingleExample() {           } private static SingleExample singleExample=new SingleExample(); @Override protected SingleExample getInstanc

AndroidStudio导入Eclipse项目报错Error:Could not determine the class-path for interface com.android.builder.model.AndroidProject

AndroidStudio导入Eclipse项目报错 Error:Could not determine the class-path for interface com.android.builder.model.AndroidProject 错误原因: Gradle插件版本不一致导致,问题多出现在:eclipse项目转studio 解决步骤: https://blog.csdn.net/qq_21397217/article/details/65630730 原文地址:https://www

《Android源码设计模式解析》读书笔记——Android中你应该知道的设计模式

断断续续的,<Android源码设计模式解析>也看了一遍,书中提到了很多的设计模式,但是有部分在开发中见到的几率很小,所以掌握不了也没有太大影响. 我觉得这本书的最大价值有两点,一个是从设计模式的角度去理解Android源码,结合着日常开发中的常用类,对设计模式的理解会更加的深刻:另外一个好处就是了解常用模式,再看其他人写的代码的时候,更容易理解代码思路.下面是我的读书笔记和一些思考,设计模式只整理我认为重要的部分. 建造者模式 建造者模式最明显的标志就是Build类,而在Android中最常

[GeekBand] 设计模式之观察者模式学习笔记

本文参考文献::GeekBand课堂内容,授课老师:李建忠 :网络资料: http://blog.csdn.net/hguisu/article/details/7556625 本文仅作为自己的学习笔记,不代表权威,因为是初学,有错误烦请大家指正,谢谢. 1.什么是观察者模式,应用场所有哪些? 观察者模式(有时又被称为发布-订阅Subscribe>模式.模型-视图View>模式.源-收听者Listener>模式或从属者模式)是软件设计模式的一种.在此种模式中,一个目标物件管理所有相依于它

mongodb设计模式策略之读书笔记

mongodb的设计模式策略 读书笔记 1.查询命令分类模式 在副本集中职责被分离到不同的节点.最基本的第一类节点可能也同时占据着首要地位,它只需要储存那些写入和更新所需的数据.而查询工作则交由第二类节点来执行.这一模式将提升首要节点服务器的写吞吐量,因为当写入一组对象时,需要更新及插入的数据量也随之减少,除此之外,二类节点也得益于较少的待更新数据和其自身所具有的为其工作量而优化的内存工作集. 也就是读写分离,主节点写,备节点做查询. 2.应用程序式事务模式 使用queue 样例 db.queu

设计模式之Builder

设计模式总共有23种模式这仅仅是为了一个目的:解耦+解耦+解耦...(高内聚低耦合满足开闭原则) 介绍: Builder模式是一步一步创建一个复杂的对象,它允许用户可以只通过指定复杂对象. 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. 模式结构: 首先我们看一下Builder的代码: public interface Builder { //创建部件A 比如创建汽车车轮 void buildPartA(); //创建部件B 比如创建汽车方向盘 void buildP

Objective-C设计模式——生成器Builder(对象创建)

生成器 生成器,也成为建造者模式,同样是创建对象时的设计模式.该模式下有一个Director(指挥者),客户端知道该类引用用来创建产品.还有一个Builder(建造者),建造者知道具体创建对象的细节. 指挥者只是起到协调的作用,它有一个Builder引用用于指挥Builder如何创建对象,Builder内就是为了构建对象的算法. 其实生成器模式,就是为了定制某些特定对象而产生的模式.对象的过长往往非常的复杂,如果不是用该模式来创建对象,对象创建类将会非常的冗余且难以复用.使用生成器将表现层和创建