设计模式(三)--工厂模式
来源:互联网 发布:淘宝优惠卷群怎么代理 编辑:程序博客网 时间:2024/06/05 17:24
★ 场景和问题
Java程序开发讲究面向接口编程,隐藏具体的实现类,可是如何得到接口呢?
工厂的本质是“选择实现”.
工厂、接口和实现类之间的技术边界:工厂只负责选择实现,实现类才做真正的实现,而接口是限定到底实现什么东西和返回什么东西,三者之间分工明确、各负其责。
附代码如下:
package SingelModel.pattern.factory.dep;public interface Api {public String t();}
package SingelModel.pattern.factory.dep.impl;import SingelModel.pattern.factory.dep.*;;public class imp1 implements Api {@Overridepublic String t() {return "1111Over!!!";} }
package SingelModel.pattern.factory.dep.impl;import SingelModel.pattern.factory.dep.Api;public class imp2 implements Api {@Overridepublic String t() {String str = "2383";return str;}}
package SingelModel.pattern.factory.dep;import SingelModel.pattern.factory.dep.impl.imp1;import SingelModel.pattern.factory.dep.impl.imp2;public class ApiFactory { /** * 工厂类的命名规范:XXXFactory * 工厂方法的命名规范: * 获得当前类的实例:getInstance(),newInstance() * 工厂类中的生产接口: getXXXApi(),createXXXApi() *//** * 首先把工厂类的构造方法私有化,避免外部造实力 */private ApiFactory(){}public static Api getApi(){return new imp1();}public static Api getApi(int type){if(type==1){return new imp1();}return new imp2();}}
测试类:
package SingelModel.pattern.factory.client;import SingelModel.pattern.factory.dep.Api;import SingelModel.pattern.factory.dep.ApiFactory;public class Client {public static void main(String[] args) {Api api = ApiFactory.getApi();String str = api.t();System.out.println(str);System.out.println("-----------");api = ApiFactory.getApi(1);System.out.println(api.t());api = ApiFactory.getApi(2);System.out.println(api.t());}}
测试结果如下:
1111Over!!!-----------1111Over!!!2383
阅读全文
1 0
- 设计模式--工厂模式(三)
- 设计模式(三)--工厂模式
- 【设计模式 三】工厂模式
- 设计模式之三工厂
- 设计模式------工厂三姐妹
- 设计模式------工厂三姐妹
- 设计模式-工厂三姐妹
- 设计模式--工厂三姐妹
- 设计模式工厂三姐妹
- 【设计模式】工厂三姐妹
- 【设计模式】之三工厂
- 设计模式-工厂三姐妹
- 设计模式-工厂三姐妹
- 【设计模式之三工厂】
- 设计模式三工厂区别
- 【设计模式】-工厂三姐妹
- 设计模式---工厂三兄弟
- 【设计模式】工厂三姐妹
- 京东2015校园招聘技术类笔试题及答案
- es6学习笔记
- leetcode 208. Implement Trie (Prefix Tree)
- Python 脚本相关知识
- java基础网络编程
- 设计模式(三)--工厂模式
- 2017 Multi-University Training Contest
- 过滤器和拦截器的区别
- [USACO3.4]“破锣摇滚”乐队 Raucous Rockers
- SpringCloud分布式开发五大神兽
- POJ 1182 食物链(并查集)
- Android实现Thrift服务端与客户端
- python sort、sorted 高级用法
- dom4j创建XML添加属性和标签和内容添加CDATA 删除属性