zoukankan      html  css  js  c++  java
  • 建造者模式

    一、大致构造

    1、导演者类

    2、建造抽象类

    3、产品抽象类

    4、产品具体类

    5、建造具体类

    二、代码(建造模式,相当于将一堆零件组装成一个对象)

    1、建造抽象类

    Builder.java

    package com.builderModel;
    
    public interface Builder {
    
        public void BuildPart1();
        public void BuildPart2();
        public Product getProduct();
        
    }

    2、产品标识类

    package com.builderModel;
    
    public interface Product {
    
    }

    3、具体产品类

    Article.java

    package com.builderModel;
    
    public class Article implements Product {
    
        private String title;
        
        private String content;
    
        public String getTitle() {
            return title;
        }
    
        public void setTitle(String title) {
            this.title = title;
        }
    
        public String getContent() {
            return content;
        }
    
        public void setContent(String content) {
            this.content = content;
        }
    
        @Override
        public String toString() {
            return "Article [title=" + title + ", content=" + content + "]";
        }
        
        
        
    }

    AutoMessage.java

    package com.builderModel;
    
    public class AutoMessage implements Product {
    
        private String from;
        
        private String content;
    
        public String getFrom() {
            return from;
        }
    
        public void setFrom(String from) {
            this.from = from;
        }
    
        public String getContent() {
            return content;
        }
    
        public void setContent(String content) {
            this.content = content;
        }
    
        @Override
        public String toString() {
            return "Message [from=" + from + ", content=" + content + "]";
        }
        
        
        
        
    }

    4、具体产品构造者

    ArticleBuilder.java

    package com.builderModel;
    
    public class ArticleBuilder implements Builder {
        
        Article article = new Article();
    
        @Override
        public void BuildPart1() {
            article.setTitle("hello");
            
        }
    
        @Override
        public void BuildPart2() {
            article.setContent("world");
        }
    
        @Override
        public Product getProduct() {
            return article;
        }
    
    }

    AutoMessageBuilder.java

    package com.builderModel;
    
    public class AutoMessageBuilder implements Builder {
        
        private AutoMessage message = new AutoMessage();
    
        @Override
        public void BuildPart1() {
            message.setFrom("客户");
        }
    
        @Override
        public void BuildPart2() {
            message.setContent("你的网页出错了");
        }
    
        @Override
        public Product getProduct() {
            
            return message;
        }
    
    }

    5、导演者类

    Director.java

    package com.builderModel;
    
    public class Director {
        private Builder builder = null;
        
        public Director(Builder builder) {
            this.builder = builder;
            this.builder.BuildPart1();
            this.builder.BuildPart2();
            
        }
        
        public Product getProduct() {
            return this.builder.getProduct();
        }        
    }

    6、测试类

    Test.java

    package com.builderModel;
    
    public class Test {
        
        
        public static void main(String[] args) {
            
            Builder builder = new AutoMessageBuilder();
            
            Director director = new Director(builder);
            
            AutoMessage autoMessage = (AutoMessage) director.getProduct();
            
            System.out.println(autoMessage.toString());
            
        }
    
    }
  • 相关阅读:
    C++文件读写详解(ofstream,ifstream,fstream)
    C++ char*,const char*,string,int 的相互转换
    Properties --- C++读配置信息的类
    值得推荐的C/C++框架和库
    leetcode 264: Ugly Number II
    几种Tab的实现方法
    HBase数据存储格式
    粗略。。Java项目设计模式之笔记----studying
    开放的平台、向上的文化——揭秘万达电商(4)
    RecyclerView
  • 原文地址:https://www.cnblogs.com/honger/p/5961959.html
Copyright © 2011-2022 走看看