服务器之家

服务器之家 > 正文

java面向对象设计原则之开闭原则示例解析

时间:2022-02-20 11:32     来源/作者:guoyp2126

概念

唯一不变的是不断的变化,在软件开发中应该对需求的变化持开放态度,我们要做的就是如何将这种变化对我们现有的成果带来最小的冲击。开闭原则直接面对面向对象程序的目标扩展性和可维护性,要求对扩展开放,对修改关闭;即在不修改原有代码的情况下改变模块的行为。该原则是面向对象程序设计的总原则,也是度量程序设计的好与坏的唯一标准

实现

开闭原则的实现策略主要在面向对象的封装性和多态性的基础上,利用面向对象的其他原则完成的。

1.使用多态机制解决问题。

如:远程监控系统使用数据传输使用427版本的协议,一年以后对427版本的协议进行了修正。设计时应该考虑的数据传输协议的可变性,抽象出具有报文解译、编制、校验等所有版本协议使用的通用方法,调用方针对接口进行编程即可,如上述示例设计类图如下:

java面向对象设计原则之开闭原则示例解析

调用方依赖于报文接口,报文接口是稳定的,而不针对具体的427协议或427修正协议。利用接口多态技术,实现了开闭原则。除使用接口实现多态外,还可以使用继承机制重置实现多态来完成,如:某一实现过程包括获取数据、数据处理、数据存储,其中获取数据和存取数据不变,数据处理过程发生变化,则可以在子类中使用重置机制将数据处理方法进行重写。使用多态技术实现的方式,均不修改原有代码,只是增加一份新的实现类,完成了开闭原则。

2.降低耦合度, 将变化的代码降到最低

如:系统界面上按钮控件为方形按钮,现在领导要求把所有的按钮换成圆角按钮,如何办?
使用迪米特法则,在使用按钮控件时,给其包外围一层,增加一个按钮包装类,使得界面与按钮控件脱耦,修改时只需修改包装器类即可。其类图如下:

java面向对象设计原则之开闭原则示例解析

3. 遵循单一职责原则

职责越单一,封装性越好,“开闭原则”越容易实现。

拓展

1.注意分支语句的使用。分支语句破坏开闭原则,当条件发生变化时,我们不得不修改代码。解决办法依然是使用多态机制,每个分支使用不同实现类,来解决问题。
2. 避免过度设计
百分之百的开闭原则很难达到,但要尽量符合开闭原则。在设计时对于将来可能会发生变化的部分实现面向接口的编程,同时对不可能或极小概率发生变化时的应该避免过度设计而造成的复杂性。

以上就是java面向对象设计原则之开闭原则示例解析的详细内容,更多关于java面向对象设计原则的资料请关注服务器之家其它相关文章!

原文链接:https://blog.csdn.net/guoyp2126/article/details/113917562

相关文章

热门资讯

蜘蛛侠3英雄无归3正片免费播放 蜘蛛侠3在线观看免费高清完整
蜘蛛侠3英雄无归3正片免费播放 蜘蛛侠3在线观看免费高清完整 2021-08-24
2022年最旺的微信头像大全 微信头像2022年最新版图片
2022年最旺的微信头像大全 微信头像2022年最新版图片 2022-01-10
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
返回顶部