设计模式 1----------简单工厂
来源:互联网 发布:网络语荡漾的意思 编辑:程序博客网 时间:2024/05/17 20:21
学习 1 简单工厂模式
1.场景
客户端需要调用接口里的方法
2.不用模式的解决方案
三个类 (1)接口API
(2)接口API的实现类Impl
(3)客户端Client
代码如下:
Api.java
public interface Api { public void test1(String s);}
Impl.java
public class Impl implements Api { @Override public void test1(String s) { System.out.println("Now In Impl1. The input s==" + s); }}
Client.java
public class Client { public static void main(String[] args) { Api api = new Impl(); api.test1("测试"); }}缺点:客户端不但知道了接口,还知道了具体的实现就是Impl,客户端根本就不应该知道具体的实现类Impl
3.使用简单工厂模式来解决问题
四个类 (1)接口API
(2)接口API的实现类Impl1和Impl2
(3)工厂类Factory
(4)客户端Client
代码如下:
Api.java
public interface Api { public void operation(String s);}
Impl1.java
public class Impl1 implements Api { @Override public void operation(String s) { System.out.println("Now In Impl1. The input s==" + s); }}
Impl2.java
public class Impl2 implements Api { @Override public void operation(String s) { System.out.println("Now In Impl2. The input s==" + s); }}
Factory.java
public class Factory { public static Api createApi(int condition) { Api api = null; if (condition == 1) { api = new Impl1(); } else if (condition == 2) { api = new Impl2(); } return api; }}
Client.java
public class Client { public static void main(String[] args) { Api api = Factory.createApi(1); api.operation("测试"); }}
这样的话,从客户端来看,它根本不知道具体的实现是什么,也不知道是如何实现的,它只知道通过工厂获得了一个接口对象,然后通过这个借口来获取想要的功能
0 0
- 设计模式1:简单工厂
- 设计模式 1----------简单工厂
- 简单工厂设计模式-设计模式(1)
- 简单工厂设计模式-设计模式(1)
- Java设计模式-工厂模式(1)简单工厂模式
- NET设计模式(1): 简单工厂模式
- .NET设计模式(1): 简单工厂模式
- NET设计模式(1): 简单工厂模式
- .NET设计模式(1): 简单工厂模式
- 设计模式(一)--简单工厂模式(1)
- .NET设计模式(1): 简单工厂模式
- .NET设计模式(1): 简单工厂模式
- .NET设计模式(1): 简单工厂模式
- .NET设计模式(1): 简单工厂模式
- .NET设计模式(1) - 简单工厂模式
- 设计模式1--简单工厂模式
- 设计模式1: 简单工厂模式
- 设计模式 1-简单工厂模式
- Android通过调用Webservice实现天气预报
- iOS开发 - UIView动画扩展块(UIViewAnimationWithBlocks)
- Android简单自定义圆形和水平ProgressBar
- Extjs Window用法详解
- 使用cocoaPads引用第三方库(以JSONKit为例)
- 设计模式 1----------简单工厂
- 在CentOS 6.3 64bit上为Apache Traffic Server 4.2.3挂载SSD并压测
- 《剑指Offer》面试题3:二维数组中的查找
- c++空的class的大小
- IOS 4,5,6,6+适配设计与切图
- Struts2中的OGNL详解
- tomcat启动报连接mysql connection refused 连接异常 拒绝连接
- string常用的一些函数总结
- 数据结构 二叉搜索树的相关操作