设计模式之创建者模式

来源:互联网 发布:office for ubuntu 编辑:程序博客网 时间:2024/05/01 02:48
package CreatorModel;import java.lang.reflect.*;import java.util.*; public class CreatorModel {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubBuilder builder = new Builder();          builder.produceMailSender(10);         builder.produceSmsSender(10);        List<Sender> list=builder.ShowList();        for(int i=0;i<20;i++){        Sender demo=list.get(i);        demo.Send();        }        for(int i=0;i<20;i++){        try {Method method=list.get(i).getClass().getDeclaredMethod("Send");method.invoke(list.get(i));}   catch ( Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}        }        try{        Class c=Class.forName("CreatorModel.MailSender");        Method m1=c.getDeclaredMethod("test3",int.class,String.class);        m1.invoke(c.newInstance(), 2,"ok");        }catch(Exception e){        e.printStackTrace();        }}}interface Sender {      public void Send();  }  class MailSender implements Sender {      @Override      public void Send() {          System.out.println("this is mail sender!");      }      public void test1(String type){    System.out.println("hello world"+type);    }    public void test2(int type){    System.out.println("hello world"+type);    }    public void test3(int type1,String type){    System.out.println("hello world"+type1+" "+type);    }    }  class SmsSender implements Sender {        @Override      public void Send() {          System.out.println("this is sms sender!");      }  } class Builder {          private List<Sender> list = new ArrayList<Sender>();            public void produceMailSender(int count){          for(int i=0; i<count; i++){              list.add(new MailSender());          }      }            public void produceSmsSender(int count){          for(int i=0; i<count; i++){              list.add(new SmsSender());          }        }      public List ShowList(){    return list;         }  } 

0 0
原创粉丝点击