• 开闭原则


    一、定义(程序对修改关闭,对扩展开放)

    ①、一个软件实体如类,模块和函数应该对扩展开放(对于提供方来说),对修改关闭(对于使用方来说)。用抽象构建框架,用实现扩展细节。

    ②、当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化。

    ③、编程中遵循其它原则,以及使用设计模式的目的就是遵循开闭原则。

     二、案例

    /**
     * @author 作者 ki16:
     * @version 创建时间:2021年7月23日 下午2:52:08
     *
     */
    
    public class Ocp {
        public static void main(String[] args) {
            UseTool use = new UseTool();
            System.out.println("使用" + use.use(new FishingRod()));
            System.out.println("使用" + use.use(new Fork()));
        }
    }
    //进行捕捞(使用方)
    class UseTool{
        public String use(Tool too) {
            return too.fishing();
        }
    }
    
    //工具(提供方)
    abstract class Tool{
        int type;
        public abstract String fishing();
    }
    
    class FishingRod extends Tool{
        public FishingRod() {
            super.type = 1;
        }
        @Override
        public String fishing() {
            return "鱼竿";
        }
    }
    class Fork extends Tool{
        public Fork() {
            super.type = 2;
        }
        @Override
        public String fishing() {
            return "叉子";
        }
    }
  • 相关阅读:
    [Javascript] Prototype Pattern
    [Typescript] tsexpecterror
    [React] Compound Pattern
    [React] SWR for data fetching
    [Javascript] Factory pattern vs Class instance
    [Typescript] Only Type import or export
    AcWing 1113. 红与黑
    AcWing 178 第K短路
    AcWing 190.字串变换
    AcWing 165 小猫爬山
  • 原文地址:https://www.cnblogs.com/ki16/p/15048975.html
Copyright © 2020-2023  润新知