开闭原则

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

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

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

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

 二、案例

/**
 * @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 "叉子";
    }
}
原文地址:https://www.cnblogs.com/ki16/p/15048975.html