首页 > 其他 > 详细

设计模式之简单工厂模式

时间:2015-12-28 12:11:26      阅读:123      评论:0      收藏:0      [点我收藏+]

设计模式之简单工厂模式

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


初学《大话设计模式》

设计模式之简单工厂模式

原文:http://www.cnblogs.com/zhaoww/p/5081933.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!