image

编辑人: 未来可期

calendar2025-07-25

message1

visits102

强化阶段第 5 - 6 周:面向对象技术 - 设计原则深度解析(三十三讲)

在系统架构设计师的备考过程中,面向对象技术中的设计原则是非常重要的部分。

一、单一职责原则
这一原则要求一个类只负责一项职责。比如说,在一个员工管理系统中,员工的考勤类就不应该同时负责薪资计算的功能。如果将两者混在一起,当考勤规则改变或者薪资计算方式调整时,这个类就会变得复杂难以维护。学习这一原则时,可以通过分析现有的代码库,找出那些承担了过多职责的类,然后将其拆分。例如一个既有用户信息管理又有订单处理的类,可以拆分成用户管理类和订单处理类。

二、开闭原则
软件实体(类、模块、函数等)应该对扩展开放,对修改关闭。拿图形绘制系统来说,如果要添加新的图形类型,如三角形,不应该去修改原有的圆形、矩形绘制类的代码,而是通过扩展的方式,创建一个新的三角形绘制类。在实际学习中,要多研究一些开源框架是如何遵循开闭原则进行设计的,像Spring框架,在添加新的功能模块时,很少需要对核心代码进行修改。

三、里氏替换原则
子类必须能够替换掉它们的父类并且保证程序的正确性。例如在动物类层次结构中,鸟是动物的子类,如果有一个函数接受动物类型的参数,那么传入鸟的对象应该是没有问题的。在备考时,可以通过编写一些继承关系的代码示例,故意违反该原则,然后看程序会出现什么问题,从而加深理解。

四、依赖倒置原则
高层模块不应该依赖低层模块,二者都应该依赖其抽象。抽象不应该依赖细节,细节应该依赖抽象。比如在一个数据库访问层和应用层的交互中,应用层不应该直接依赖于具体的MySQL数据库操作类,而是依赖于一个抽象的数据库操作接口。这样当切换到其他数据库如Oracle时,只需要实现新的符合该接口的数据库操作类即可。

五、接口隔离原则
客户端不应该被迫依赖于它不需要的接口。比如在设计打印机管理系统时,彩色打印机和黑白打印机可能有不同的接口需求,不要将它们的所有功能都放在一个大的接口里,而是根据实际需求拆分成多个小接口。

六、迪米特法则(最少知识原则)
一个对象应该对其他对象有最少的了解。在一个复杂的电商系统中,订单处理类不需要了解用户的详细收货地址信息,只需要知道必要的信息如城市等就可以。

通过代码重构案例来演示这些原则的应用技巧是非常有效的学习方法。可以从简单的示例代码开始,先写出违反这些原则的代码,然后按照原则逐步进行重构,观察代码的可读性、可维护性和扩展性的提升。同时,多做一些相关的练习题,在实际的场景中运用这些原则,这样在备考系统架构设计师考试时就能更加得心应手。

喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!

创作类型:
原创

本文链接:强化阶段第 5 - 6 周:面向对象技术 - 设计原则深度解析(三十三讲)

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share