zoukankan      html  css  js  c++  java
  • java实现23种设计模式之建造者模式

    举一个发送邮件和短信的例子
    package com.ceshi3;
    
    /**
     * 举一个发送邮件和短信的例子
     * @author Administrator
     *
     */
    public interface Sender {
        public void Send();
    }
    package com.ceshi3;
    
    public class MailSender implements Sender{
    
        @Override
        public void Send() {
            System.out.println("this is mail sender");
        }
    
    }
    package com.ceshi3;
    
    public class SmsSender implements Sender{
    
        @Override
        public void Send() {
            System.out.println("this is sms sender");
        }
    
    }

    建造者类:

    package com.ceshi3;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class Builder {
        
        private List<Sender> list = new ArrayList<Sender>();
        
        public List<Sender> produceMailSender(int count){
            for(int i=0; i<count; i++){
                list.add(new MailSender());
            }
            return list;
        }
        public List<Sender> produceSmsSender(int count){
            for(int i=0; i<count; i++){
                list.add(new SmsSender());
            }
            return list;
        }
    }

    测试

    package com.ceshi3;
    
    import java.util.List;
    
    public class Test {
        public static void main(String[] args) {
            Builder builder = new Builder();
            List<Sender> list = builder.produceMailSender(10);
            for (Sender sender : list) {
                sender.Send();
            }
        }
    }

    建造者模式将很多功能集成到一个类里,这个类可以创造出比较复杂的东西。用的比较多,工厂模式适用于单个;

    建造者是为了使用多个对象集中在一起建造一个比较复杂的功能;

  • 相关阅读:
    Java 概述
    快速开始
    Essential Java.《Java 编程要点》
    SpringBoot属性配置-第三章
    SpringBoot项目属性配置-第二章
    SpringBoot学习-第一章
    spring boot configuration annotation processor not found in classpath
    IntelliJ IDEA 2017 完美注册方法及破解方法
    springmvc-初次接触
    mybatis的多表联查
  • 原文地址:https://www.cnblogs.com/zhengyuanyuan/p/10737590.html
Copyright © 2011-2022 走看看