设计模式之简单工厂模式

来源:互联网 发布:mac 更新ruby版本 编辑:程序博客网 时间:2024/05/16 05:05
设计模式之简单工厂模式

简单工厂模式又名为:静态工厂方法模式。主要使用在业务较简单的情况下。
它由三种角色组成:
1、工厂类角色:这是本模式的核心,含有一定的商业逻辑和判断逻辑。在java中它往往由一个具体类实现。
2、抽象产品角色:它一般是具体产品继承的父类或者实现的接口。在java中由接口或者抽象类来实现。
3、具体产品角色:工厂类所创建的对象就是此角色的实例。在java中由一个具体类实现。

下面用该模式实现简单的计算器功能(本例将其功能大大缩减):

事先准备:

1.业务逻辑与界面逻辑分离降低耦合度,方便维护及扩展

2.通过继承多态的方式使具体功能分离

正式开始:

首先定义一个Operation接口:

1 package test02;2 3 public interface Operation {4     float getResult();5 }
Operation.java

接着完成加减法的Operation具体实现类:

 1 package test02; 2  3 public class SumOperationImp implements Operation{ 4  5     @Override 6     public float getResult() { 7         float result=0; 8         result = 1+1; 9         return result;10         11     }12     13 }
SumOperation.java
 1 package test02; 2  3 public class SubOperationImp implements Operation{ 4  5     @Override 6     public float getResult() { 7         float result=0; 8         result = 1-1; 9         return result;10         11     }12     13 }
SubOperation.java

再实现静态工厂类用来实例化对象:

 1 package test02; 2  3 public class OperationFactory { 4     public static Operation getOperation (String oper) { 5         if("+".equals(oper)){ 6             return new SumOperationImp(); 7         } 8         else { 9             return new SubOperationImp();10         }11         12     }13 }
OperationFactory.java

最终完成测试类:

 1 package test02; 2  3 import java.util.Scanner; 4  5 public class Test { 6     public static void main(String[] args) { 7         Scanner scanner =new Scanner(System.in); 8         String oper =scanner.nextLine(); 9         Operation operation= OperationFactory.getOperation(oper);10         float result = operation.getResult();11         System.out.println(result);12     }13 }
Test.java


初学《大话设计模式》

0 0
原创粉丝点击