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();
            }
        }
    }

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

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

  • 相关阅读:
    SQL存储过程基础(从基础开始学,加油!)
    SQL语句经典大全
    SQL SQL语句的增删改查
    web app iphone4 iphone5 iphone6 响应式布局 适配代码
    DOM和 jquery 基础
    HTML 和CSS 语言
    python的目标
    老男孩学习DAY11-1 进程、进程池、协程
    老男孩python DAY10 soket 编程
    老男孩全栈PYTHON -DAY8-面向妹子(对象)编程
  • 原文地址:https://www.cnblogs.com/zhengyuanyuan/p/10737590.html
Copyright © 2011-2022 走看看