面向对象设计之开放-封闭原则(Open - Colosed Principle)

开放-封闭原则解析
本文深入探讨了软件设计中的开放-封闭原则,强调了在不修改原有代码的基础上进行扩展的重要性,通过图表演示系统的实例,展示了如何通过抽象化设计实现高内聚、低耦合的代码结构,从而提高软件的适应性、灵活性和稳定性。

开放-封闭原则:

对扩展开放,对修改关闭,既软件实体应尽量在不修改原代码的情况下进行扩展 。

 好处:

  1. 高内聚,低耦合。
  2. 降低了各程序之间的耦合性,抽象化设计是开闭原则的关键。
  3. 适应性、灵活性、稳定性比较好。增加新功能时,只需要在原有基础上增加新的模块就能实现新功能。增加的新模块对原有模块没影响或者影响很小。

 实例:

图表演示系统,演示各种图,添加新图  

UML:

 柱状图:

 

package com.szxy.LemonSnm;

public class BarChart extends  BaseChart{
    public void display(){
        System.out.println("This is Bar Chart");
    }
}

 

饼状图:

package com.szxy.LemonSnm;

public class PieChart extends  BaseChart{
    public void display(){
        System.out.println("This is Pie Chart");
    }
}

添加新图: 

package com.szxy.LemonSnm;

public class NewChart extends  BaseChart{
    public void display(){
        System.out.println("This is New Chart");
    }
}

 管理器显示图表:

package com.szxy.LemonSnm;

public class ChartDisplayManager {
    public void display(BaseChart baseChart){
                 baseChart.display();
               }
    }

抽象图: 

package com.szxy.LemonSnm;

public  abstract class BaseChart {
    public abstract void display();
}

 客户端测试:

 

package com.szxy.LemonSnm;

public class Main {

    public static void main(String[] args) {

        System.out.println("this is OCP method");
        ChartDisplayManager chartDisplayManager = new ChartDisplayManager();
        chartDisplayManager.display(new BarChart()); //柱状图
        chartDisplayManager.display(new PieChart()); //饼状图
        chartDisplayManager.display(new NewChart()); //添加新图
    }
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值