设计模式七大原则 - 开闭原则

开闭原则

对修改关闭,对扩展开放

当软件需要变化时,通过扩展来实现功能,而不是修改原有代码来实现

示范案例

public class Main {
    public static void main(String[] args) {
        draw(1);
        draw(2);
    }

    private static void draw(int type) {
        if (type == 1) {
            System.out.println("绘制圆形");
        } else if (type == 2) {
            System.out.println("绘制三角形");
        }
    }
}

在我们没有使用开闭原则时,如果这时候我们需要添加一个 绘制方形。我们必须修改 draw 才可以达到我们想要的结果

public class Main {
    public static void main(String[] args) {
        draw(1);
        draw(2);
        draw(3);
    }

    private static void draw(int type) {
        if (type == 1) {
            System.out.println("绘制圆形");
        } else if (type == 2) {
            System.out.println("绘制三角形");
        } else if (type == 3) {
            System.out.println("绘制方形");
        }
    }
}

下面我们将代码使用开闭原则重构一次

public abstract class Shape {
    public abstract void draw();
}
public class Circular extends Shape{
    @Override
    public void draw() {
        System.out.println("绘制圆形");
    }
}
public class Triangle extends Shape{
    @Override
    public void draw() {
        System.out.println("绘制三角形");
    }
}

我们让所有的图形都必须继承抽象类 Shape 这样可以使所有的类都必须去实现绘制方法 draw ,我们在使用这些图形时,只需要进行调用相应图形的 draw 方法就可以得到想要的结果,而不需要对其他进行更改

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容