转载

设计模式之简单工厂模式

设计模式之简单工厂模式

简单工厂模式又名为: 静态工厂方法模式 。主要使用在业务较简单的情况下。

它由三种角色组成:

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

初学《大话设计模式》

正文到此结束
Loading...