• 设计模式之简单工厂模式


    设计模式之简单工厂模式

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


    初学《大话设计模式》

  • 相关阅读:
    寒假学习第六天
    寒假学习第五天
    寒假学习第四天
    spark生态体系了解学习(六)
    spark生态体系了解学习(五)
    spark生态体系了解学习(四)
    spark生态体系了解学习(三)
    spark生态体系了解学习(二)
    spark生态体系了解学习(一)
    共享
  • 原文地址:https://www.cnblogs.com/zhaoww/p/5081933.html
Copyright © 2020-2023  润新知