设计模式之简单工厂模式

设计模式之简单工厂模式

简单工厂模式又名为:静态工厂方法模式。主要使用在业务较简单的情况下。
它由三种角色组成:
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


初学《大话设计模式》

原文地址:https://www.cnblogs.com/zhaoww/p/5081933.html