免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
設(shè)計模式——構(gòu)造者模式

構(gòu)造器模式_組裝復(fù)雜實例(逐步構(gòu)造出一個復(fù)雜的實例

 

/** * 指揮者 * @author maikec * @date 2019/5/11 */public class Director {    private final AbstractBuilder builder;    public Director(AbstractBuilder builder){        this.builder = builder;    }    public void builderMessage(){        builder.createHead();        builder.createBody();        builder.signature();    }}/** * 抽象構(gòu)造器 * @author maikec * @date 2019/5/11 */public abstract class AbstractBuilder {    protected Message message;    protected Head head;    protected Body body;    protected Author author;    /**     * 創(chuàng)建消息頭部     * @return     */    protected abstract Head createHead();    /**     * 創(chuàng)建消息體     * @return     */    protected abstract Body createBody();    /**     * 署名     * @return     */    protected abstract Author signature();    public Message getMessage(){        return message;    }}/** * @author maikec * @date 2019/5/11 */public class Message {    private Head head;    private Body body;    private Author author;    public Message(){}    public Message(Head head,Body body,Author author){        this.head = head;        this.body = body;        this.author = author;    }    @Override    public String toString() {         super.toString();         if (head !=null || body != null || author != null){             StringBuffer sb = new StringBuffer( "[" );             if (head != null){                 sb.append( head.toString() );             }             if (body != null){                 sb.append( body.toString() );             }             if (author != null){                 sb.append( author.toString() );             }             sb.append( "]" );             return sb.toString();         }         return null;    }}/** * @author maikec * @date 2019/5/11 */public class Head {    private String name;    public Head(){}    public Head(String name){        this.name = name;    }    @Override    public String toString() {        super.toString();        return name == null ? "Head" : name;    }}/** * @author maikec * @date 2019/5/11 */public class Body {    private String name;    public Body(){}    public Body(String name) {        this.name = name;    }    @Override    public String toString() {         super.toString();         return name == null ? "Body" : name;    }}/** * @author maikec * @date 2019/5/11 */public class Author {    private String name;    public Author(){}    public Author(String name) {        this.name = name;    }    @Override    public String toString() {         super.toString();         return name == null ? "Author" : name;    }}/** * Email構(gòu)造器 * @author maikec * @date 2019/5/11 */public class EmailBuilder extends AbstractBuilder {    @Override    protected Head createHead() {         head = new Head("Email Head");         return head;    }    @Override    protected Body createBody() {        body = new Body("Email Body");        return body;    }    @Override    protected Author signature() {        author =  new Author("maikec");        return author;    }    @Override    public Message getMessage() {        return new Message( head,body,author );    }}

附錄

github.com/maikec/patt… 個人GitHub設(shè)計模式案例

聲明

引用該文檔請注明出處

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
設(shè)計模式——抽象工廠模式
設(shè)計模式——適配器模式
微信JSsdk坐標轉(zhuǎn)百度
Book
java中toString()方法與System.out.println()
為什么選擇 Java 8 ?
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服