首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

面向对象设计原则之开闭原则及里氏替换原则

开闭原则(Open-Closed Principle, OCP):一个软件实体应当对扩展开放,对修改关闭。即软件 实体应尽量在不修改原有代码的情况下进行扩展。

例子:这里使用伪代码:

现在有一个新需求,需要打印图标D,这里的代码是不符合的,需要增加D图标,需要修改现有代码,这是不符合开闭设计原则的。

开闭原则设计理念:增加新的代码,对原有功能代码无修改。

上面的功能如何使用开闭原则重构:

1.增加抽象化接口

2.创建抽象化的子类

3.实现子类的方法

4.重构图表方法

为了满足开闭原则,需要对系统进行抽象化设计,抽象化是开闭原则的关键。在Java、C#等编程语言中,可以为系统定义一个相对稳定的抽象层,而将不同的实现行为移至具体的实现层中完成。在很多面向对象编程语言中都提供了接口、抽象类等机制,可以通过它们定义系统的抽象层,再通过具体类来进行扩展。如果需要修改系统的行为,无须对抽象层进行任何改动,只需要增加新的具体类来实现新的业务功能即可,实现在不修改已有代码的基础上扩展系统的功能,达到开闭原则的要求。

里氏代换原则(LiskovSubstitutionPrinciple,LSP):所有引用基类(父类)的地方必须能透明地使用其子类的对象。

这里使用AChart替换AbstractChart的方式就是里氏替换原则。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200422A0UQXK00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券