文档章节

四、建造者模式

安卓工程师王恒
 安卓工程师王恒
发布于 2017/04/13 16:40
字数 264
阅读 3
收藏 0

package wfy.pinsect.com.test;

public class Car {
    private String brand;
    private String price;
    private String color;
    private String type;
    public Car(String brand, String price, String color, String type) {
        super();
        this.brand = brand;
        this.price = price;
        this.color = color;
        this.type = type;
    }
    
    
    
    public String getBrand() {
        return brand;
    }

 

    public void setBrand(String brand) {
        this.brand = brand;
    }

 

    public String getPrice() {
        return price;
    }

 

    public void setPrice(String price) {
        this.price = price;
    }

 

    public String getColor() {
        return color;
    }

 

    public void setColor(String color) {
        this.color = color;
    }

 

    public String getType() {
        return type;
    }

 

    public void setType(String type) {
        this.type = type;
    }

    

    @Override
    public String toString() {
        return "Car [brand=" + brand + ", price=" + price + ", color=" + color
                + ", type=" + type + "]";
    }

 

    public static class Builder{
        private String brand;
        private String price;
        private String color;
        private String type;
        public Builder() {
        }
        public Builder setPaizi(String brand) {
            this.brand = brand;
            return this;
        }
        public Builder setPrice(String price) {
            this.price = price;
            return this;
        }
        public Builder setColor(String color) {
            this.color = color;
            return this;
        }
        public Builder setType(String type) {
            this.type = type;
            return this;
        }
        
        public Car create(){
            return new Car(brand, price, color, type);
        }
    }
}

Car car=new Car.Builder()
        .setPaizi("奔驰")
        .setPrice("220w")
        .setColor("黑色")
        .setType("跑车")
        .create();

这是一个简单的builder示例,在普通的类里创建静态内部类,由该内部类完成普通类的实例化。

使用原因:简化构造函数,如果参数很多,一次new出来很麻烦,不小心就会参数错位,可读性不好

© 著作权归作者所有

安卓工程师王恒
粉丝 2
博文 120
码字总数 41331
作品 0
浦东
Android工程师
私信 提问
设计模式之禅之设计模式-建造者模式

一:建造者模式的定义 --->建造者模式(Builder Pattern)也叫做生成器模式,其定义如下:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示 ● Product产品类 通常是实...

无信不立
2016/01/04
0
0
我的Java设计模式-建造者模式

在未上大学之前,一直有个梦想“I have a dream!”,就是能成为一位汽车工程师,一直幻想着开着自己设计的汽车飞奔在公路上,迷倒了万千少女。咳咳~~虽然现在没实现我的dream,但梦想还是得有...

Jet啟思
2017/10/11
0
0
人人都会设计模式---建造者模式--Builder

PS:转载请注明出处 作者: TigerChain 地址: www.jianshu.com/p/300cbb9ee… 本文出自 TigerChain 简书 人人都会设计模式 教程简介 1、阅读对象 本篇教程适合新手阅读,老手直接略过 2、教程...

TigerChain
2017/12/03
0
0
07、建造者模式--Builder

本节课程大纲 PS:转载请注明出处 作者: TigerChain 地址: http://www.jianshu.com/p/300cbb9ee7f2 本文出自 TigerChain 简书 人人都会设计模式 教程简介 1、阅读对象 本篇教程适合新手阅读,...

TigerChain
2017/12/03
0
0
炒冷饭系列:设计模式 建造者模式

炒冷饭系列:设计模式 建造者模式 摘要: 原创出处: http://www.cnblogs.com/Alandre/ 泥沙砖瓦浆木匠 希望转载,保留摘要,谢谢! 亲爱我,孝何难;亲恶我,孝方贤。 一、什么是建造者模式 ...

泥沙砖瓦浆木匠
2014/07/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

解决vim打开之后乱码的问题

在Windows中的文档,传输到Linux系统中(使用rz命令),出现乱码 root@localhost ~]# rpm -qf `which iconv` glibc-common-2.17-105.el7.x86_64 [root@localhost ~]# rpm -ihv /mnt/Packages......

寰宇01
14分钟前
0
0
aldi 2017年1月记录

../../tools/CBLAS/lib/cblas_LINUX.a ../../tools/lapack-3.4.2/liblapacke.a \../../tools/lapack-3.4.2/librefblas.a -lgfortran \../../tools/lapack-3.4.2/liblapack.a \../../......

MtrS
15分钟前
0
0
Choerodon如何进行日志收集与告警

作者:董文启 应用程序日志是由软件应用程序记录的事件文件, 它一般包含错误,信息事件和警告。一个良好的日志系统有助于快速发现问题,定位问题,同时也为业务分析起到一定的作用。 传统E...

Choerodon
27分钟前
1
0
js二维码生成插件“jquery.qrcode.min.js”

<!doctype html> <html> <head> <meta charset="utf-8" /> <title>生成二维码</title> <script type='text/javascript' src='http://cdn.staticfile.org/jquery/2.1.1/jquery.min.js'></scri......

泉天下
30分钟前
0
0
Spring AOP之同一个对象方法内部自调用导致事务失效问题

对于像我这种喜欢滥用AOP的程序员,遇到坑也是习惯了,不仅仅是事务,其实只要脱离了Spring容器管理的所有对象,对于SpringAOP的注解都会失效,因为他们不是Spring容器的代理类,SpringAOP,就切入不...

xiaomin0322
36分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部