zoukankan      html  css  js  c++  java
  • Java设计模式之工厂设计模式

    工厂模式(Factory Method):定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到了子类。

    1、业务逻辑

    1.1、父类Operation

     1 package com.designmode.factory;
     2 
     3 public abstract class Operation {
     4 
     5     protected int numberA;
     6     protected int numberB;
     7     
     8     public void setValue(int numberA,int numberB){
     9         this.numberA=numberA;
    10         this.numberB=numberB;
    11     }
    12     
    13     public abstract int getResult();
    14 }

    1.2、加法类AddOperation

     1 package com.designmode.factory;
     2 
     3 public class AddOperation extends Operation {
     4 
     5     @Override
     6     public int getResult() {
     7         // TODO Auto-generated method stub
     8         return this.numberA+this.numberB;
     9     }
    10 
    11 }

    1.3、减法类SubOperation

     1 package com.designmode.factory;
     2 
     3 public class SunOperation extends Operation {
     4 
     5     @Override
     6     public int getResult() {
     7         // TODO Auto-generated method stub
     8         return this.numberA-numberB;
     9     }
    10 
    11 }

    1.4、工厂父类OperationFactory

     1 package com.designmode.factory;
     2 
     3 public interface OperationFactory {
     4 
     5     /**
     6      * 创建对象工程
     7      * @param operate
     8      * @return
     9      */
    10     Operation createOperation(String operate);
    11     
    12 }

    1.5、生成加法运算对象工厂AddOperation

     1 package com.designmode.factory;
     2 
     3 public class AddFactory implements OperationFactory {
     4 
     5     @Override
     6     public Operation createOperation(String operate) {
     7         // TODO Auto-generated method stub
     8         return new AddOperation();
     9     }
    10     
    11 }

    1.6、生成减法运算对象工厂SubOperation

     1 package com.designmode.factory;
     2 
     3 public class SubFactory implements OperationFactory {
     4 
     5     @Override
     6     public Operation createOperation(String operate) {
     7         // TODO Auto-generated method stub
     8         return new SunOperation();
     9     }
    10 
    11 }

    2、页面逻辑

     1 package com.designmode.factory;
     2 
     3 import java.util.Scanner;
     4 
     5 public class OperationTest {
     6 
     7     @SuppressWarnings("resource")
     8     public static void main(String[] args) {
     9         Scanner reader = new Scanner(System.in);
    10         System.out.print("请您输入第一个数字:");
    11         int numberA = Integer.parseInt(reader.nextLine());
    12         System.out.print("请您输入运算符:");
    13         String operate = reader.nextLine();
    14         System.out.print("请您输入第二个数字:");
    15         int numberB = Integer.parseInt(reader.nextLine());
    16         
    17         OperationFactory operationFactory = null;
    18         switch (operate) {
    19         case "+":
    20             operationFactory = new AddFactory();
    21             break;
    22         case "-":
    23             operationFactory = new SubFactory();
    24             break;
    25         default:
    26             System.out.println("你输入错误,请重新输入!");
    27             break;
    28         }
    29         Operation operation = operationFactory.createOperation(operate); // 生成运算对象
    30         operation.setValue(numberA, numberB); // 设置numberA与numberB的值
    31         int result = operation.getResult(); // 获取运算结果
    32         System.out.println(numberA+operate+numberB+"="+result); // 打印运算结果
    33     }
    34 }
  • 相关阅读:
    MySQL数据类型与操作
    MySQL 初识
    python中的线程
    python中的进程
    python中基于tcp协议与udp的通信(数据传输)
    字符串str.format()方法的个人整理
    进度条打印函数
    套接字错误搜集
    正则表达式 整理(w s d 点 贪婪匹配 非贪婪匹配 * + ? {} | [] ^ $  单词边界 分组、re.findall()、re.split()、re.search()、re.match()、re.compile()、re.sub())
    软件开发架构介绍||OSI七层协议之物理层、数据链路层、网络层、传输层(mac地址、ip协议、断开协议、tcp协议之三次握手四次挥手)
  • 原文地址:https://www.cnblogs.com/wangchaoyuan/p/5953754.html
Copyright © 2011-2022 走看看