• 设计模式(4)-----开放,封闭原则


    开放封闭原则(OCP)

    定义

      所有面向对象原则的核心。软件设计本身所追求的目标就是封装变化、降低耦合,而开放封闭原则正是对这一目标的最直接体现。软件实体应该是可扩展,而不可修改的。也就是说,对扩展是开放的,而对修改是封闭的。

    例子

      简单工厂模式就是违背了开放封闭原则的,所以后面才会有工厂模式,抽象工厂模式。

    package com.csdhsm.designpattem.simplefactory;
    
    /**
     * @Title: Factory.java
     * @Package com.csdhsm.designpattem.simplefactory
     * @Description: 工厂类
     * @author: Han
     * @E-mail: 294098789@qq.com
     * @date: 2016年6月16日 上午10:33:48
     * @version:V1.0
     */
    public class Factory {
    
        private static Operator operator;
    
        public static Operator getOperator(String type) {
    
            if (type == null) {
                throw new NullPointerException();
            }
    
            //根据运算符号获得对应的计算类(对字符串switch/case判断,只有jdk1.7以上版本)
            switch (type) {
            case "+":
                operator = new OperationAdd();
                break;
            case "-":
                operator = new OperationSub();
                break;
            case "*":
                operator = new OperationMul();
                break;
            case "/":
                operator = new OperationDiv();
                break;
            default:
                throw new RuntimeException("未能识别的符号!");
            }
    
            return operator;
        }
    }

      上面的代码是简单工厂的工厂类,实现的是根据运算符,进行四则运算选择,当我们有需求改变时,比如现在要增加一个开方的运算的时候,我们就需要对工厂类进行修改,添加swich/case分支,这显然就是违背了开放-封闭原则的。

  • 相关阅读:
    IP地址分类
    HTTP协议基础
    PHP中md5()函数绕过
    支付宝转账
    前端常用小工具
    防抖和节流
    分模块简单使用vuex
    vue-cli 2+antd定制主题
    浅谈Promise
    vue中用js实现文件上传和文件下载
  • 原文地址:https://www.cnblogs.com/a294098789/p/5593108.html
Copyright © 2020-2023  润新知