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

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

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

  • 相关阅读:
    [译]理解Javascript的异步等待
    [译]为什么我要离开gulp和grunt转投npm脚本的怀抱
    [译]代码审查的重要性
    [译]转译器: 今日大不同
    猴年马月都到了
    关于“我是谁”的思考
    ASP.net MVC基础
    利用Spring.Net技术打造可切换的分布式缓存读写类
    JQuery WEB前段开发
    Javascript——说说js的调试
  • 原文地址:https://www.cnblogs.com/zhengyuanyuan/p/10737590.html
Copyright © 2020-2023  润新知