java23中设计模式之工厂模式
来源:互联网 发布:淘宝联盟 易语言源码 编辑:程序博客网 时间:2024/06/08 19:07
参考
工厂模式分为三种:
1、简单工厂模式,就是创建一个工厂类,对实现了同一接口的一些类进行实例的创建。
2、多个工厂模式,就是在普通工厂方法中,若传递的字符串出错,则不能创建对象,而多个工厂模式就是提供多个工厂方法分别创建对象。
3、静态工厂模式,将多个工厂模式里的方法设置为静态的,不需要创建实例直接调用即可。
概述:
凡是出现大量的产品需要创建并且具有共同的接口时,可由工厂方法创建。
代码描述:(以发送邮件和发送短信为类)
实现接口:
package com.design.model.factorymodel;public interface Send{ public void send();}
邮件发送类:
package com.design.model.factorymodel;public class MailSend implements Send{ @Override public void send() { System.out.println("MailSender"); }}
短信发送类:
package com.design.model.factorymodel;public class SmsSend implements Send{ @Override public void send() { System.out.println("sms send"); }}
工厂类创建:
package com.design.model.factorymodel;public class SendFactory{ //单个工厂模式 public Send producer(String type){ if(type.equals("mail")){ return new MailSend(); //创建实例 }else if (type.equals("sms")) { return new SmsSend(); //创建实例 }else { return null; //字符串不同时,不能创建对象 } } //多个工厂模式 public Send produceMail(){ return new MailSend(); } public Send produceSms(){ return new SmsSend(); } //静态工厂模式 public static Send sproduceMail(){ return new MailSend(); } public static Send sproduceSms(){ return new SmsSend(); }}
测试样例:
package com.design.model.factorymodel;public class FactoryTest{ public static void main(String[] args) { //简单工厂测试 SendFactory sendFactory = new SendFactory(); Send send = sendFactory.producer("mail"); send.send(); //多个工厂测试 SendFactory sendFactorymore = new SendFactory(); sendFactorymore.produceMail().send(); //静态工厂测试 SendFactory.sproduceMail().send(); }}
运行结果:
MailSenderMailSenderMailSender
后续说明:待补~
0 0
- java23中设计模式之工厂模式
- Android的开发之&java23中设计模式------>工厂模式
- java23中设计模式之代理模式
- java23种设计模式之抽象工厂模式
- java23中设计模式
- java23中设计模式
- java23中设计模式
- Android的开发之&java23中设计模式------>抽象工厂模式
- Android的开发之&java23中设计模式------>原型模式
- Android的开发之&java23中设计模式------>装饰模式
- Android的开发之&java23中设计模式------>代理模式
- Android的开发之&java23中设计模式------>外观模式
- Android的开发之&java23中设计模式------>组合模式
- Java23中设计模式之”装饰者模式”
- java23种设计模式之代理模式
- Java23种设计模式之策略模式
- java23种设计模式之策略模式
- java23种设计模式之策略模式
- Android自定义属性
- storm 开发系列一 第一个程序
- 三个annotation类型(RetentionPolicy,ElementType)
- java加载类详解
- linux
- java23中设计模式之工厂模式
- Linux多线程基础学习(三)线程生命周期
- map和vector的迭代器失效问题(某公司招聘笔试试题)
- Linux的账号与群组
- Linux下逻辑地址-线性地址-物理地址图解
- 第三章 内核对象(1)
- 向界面研发掘金
- (转)协方差与协方差矩阵
- HDU 4739 Zhuge Liang's Mines