• java 之 简单工厂模式(大话设计模式)


    以前只是看设计模式,每次看完都去理解一次,并没有手动去写代码,所以理解的还不是很深刻,最近查看框架源码,发现很多地方用到的都是设计模式,因为对设计模式理解的不够深刻,所以源码查看进度很慢!现在决定来温故设计模式

    上面是引用大话设计模式的类图以下是java代码,这里为了简洁只写加减法两个。

    /**
     * 运算类接口
     */
    public interface IOperation {
    
        public Double getResult(Double numberA, Double numberB);
    }

     

    /**
     * 运算类工厂
     */
    public class OperationFactory {
    
        public IOperation createOperation(String code) {
            IOperation operation = null;
            switch (code) {
            case "+":
                operation = new Add();
                break;
            case "-":
                operation = new Sub();
                break;
            default:
                break;
            }
            return operation;
        }
    }

      

    /**
     * 加法
     */
    public class Add implements IOperation {
    
        @Override
        public Double getResult(Double numberA, Double numberB) {
            return numberA + numberB;
        }
    
    }

      

    /**
     * 减法
     */
    public class Sub implements IOperation{
        @Override
        public Double getResult(Double numberA, Double numberB) {
            return numberA - numberB;
        }
    }

     

    /**
     * 测试类
     */
    public class Test {
    
        public static void main(String[] args) {
            // 创建工厂
            OperationFactory factory = new OperationFactory();
            // 获取具体实现
            IOperation operation = factory.createOperation("+");
            // 获取结果
            Double result = operation.getResult(1d, 2d);
            
            System.out.println(result);
        }
    }

    这里巩固自己对设计模式的理解,同时也希望能帮助其他童鞋理解简单工厂模式!

  • 相关阅读:
    Asp.Net+Oracle+BootStrap+Jquery
    UML类图几种关系的总结
    PHP对象在内存堆栈中的分配
    php sprintf 详解
    微信错误代码45047:客服消息只能发送20条/个用户
    php利用array_search与array_column实现二维数组查找
    mvc 详解
    php中++i 与 i++ 的区分详解
    Git 别名多个命令 超实用
    php 对象继承
  • 原文地址:https://www.cnblogs.com/zhuxiansheng/p/7873161.html
Copyright © 2020-2023  润新知