<设计模式一>普通工厂模式
来源:互联网 发布:永久域名发布软件下载 编辑:程序博客网 时间:2024/05/17 00:10
普通工厂模式
设计模式是JAVA进阶中必备的技能,接下来就为大家介绍23中设计模式的基本用法。
首先为大家介绍工厂模式的使用。工厂模式适用于大量的对象需要创建,并且具有共同的接口时。在Android中,BitmapFactory是我们用到最多的工厂模式,它的各种方法都是返回Btimap类型。
工厂模式分为三种:
1、普通工厂模式
2、多个方法工厂模式
3、静态工厂模式
举例:
首先创建一个接口Interface
public interface IOperator {public void operate();}其次创建一个类实现这个接口,如下:
public class OperateFirst implements IOperator {public void operate() {System.out.println("OperateFirst");}}
public class OperateSecond implements IOperator {public void operate() {System.out.println("OperateSecond");}}
接下来就是工厂模式的三种具体写法:
public class OperatorFactory {/** * 普通工厂模式 * @param type * @return */public IOperator produce(String type){if("first".equals(type)){return new OperateFirst();}else if("second".equals(type)){return new OperateSecond();}else{return null;}}/*---------------------------------------*//** * 多个工厂方法模式 * */public IOperator produceSecond(){return new OperateSecond();}public IOperator produceFirst(){return new OperateFirst();}/*---------------------------------------*//** * 静态工厂模式 * */public static IOperator getSecond(){return new OperateSecond();}public static IOperator getFirst(){return new OperateFirst();}}
使用测试:
public class FactoryMethodTest {public static void main(String[] args) {//普通工厂模式OperatorFactory factory = new OperatorFactory();IOperator operator = factory.produce("first");operator.operate();//多个方法工厂模式OperatorFactory factory2 = new OperatorFactory();IOperator operator2 = factory2.produceFirst();operator2.operate();//静态工厂模式IOperator operator3 = OperatorFactory.getFirst();operator3.operate();}}
普通工厂模式是通过参数来创建对象,参数不对可能返回null,多个方法工厂模式需要先创建对象,因此,我们使用静态工厂模式比较多,避免了多次创建实例。
PS:所有模式Demo会在最后一起提供。
0 0
- <设计模式一>普通工厂模式
- java设计模式(一)——普通工厂模式
- 设计模式子普通工厂模式
- Java设计模式之普通工厂模式
- java设计模式之一:普通工厂模式
- 设计模式——普通工厂模式
- 设计模式一:工厂模式
- 设计模式(一)----工厂模式
- 24_普通工厂设计模式
- 工厂设计模式一 简单工厂模式
- 设计模式--工厂设计模式(一)
- 设计模式一 简单工厂设计模式
- 札记——设计模式之普通工厂模式
- Java中的设计模式之普通工厂模式
- 1.普通工厂模式
- 设计模式一 简单工厂
- 设计模式一:工厂方法
- 设计模式一:简单工厂
- javascript内存管理介绍
- tomcat导入maven项目运行抛出org.springframework.web.context.ContextLoaderListener not found
- JokeClient-Swift 仿写学习
- 【Android】View绘制
- 荷包金融怎么升级?
- <设计模式一>普通工厂模式
- 实验楼git使用基础
- 笔记:MFC中CString和其他类型的转换
- caffe开发过程中使用了哪些工具?
- 可视化组件——iChart.js定制
- Android教育项目Bug总结
- POJ 1860 最短路
- PAT B1011 A+B和C
- 创建 VirtualBoxClient COM 对象失败.应用程序将被中断