代码不变性与封装:提升类可维护性的关键
在软件开发中,有一些重要的原则能帮助我们构建更健壮、易维护的代码,比如接口隔离原则(Interface Segregation Principle)用于抽象,依赖反转原则(Dependency Inversion Principle)用于解耦依赖。不过要记住,这些都只是原则,在应用时需结合实际情况判断。
1. 思考代码库中的不变性
在代码库中,我们需要思考一些重要部分存在哪些不变性,以及这些不变性是如何被强制执行,以防止开发者破坏它们。例如,在一个自动化披萨制作系统中,披萨规格的一些属性就存在不变性。
2. 沟通不变性
要实现不变性带来的好处,就需要有效地沟通这些不变性。因为没人能对他们不知道的不变性进行推理。在沟通时,要考虑不同的受众,主要有两类:
- 类的使用者 :他们试图解决自己的问题,寻找能帮助他们的工具,可能是调试问题或在代码库中找合适的类。
- 类的未来维护者 :他们会对类进行扩展,确保不破坏调用者依赖的不变性很重要。
在设计类时,要同时考虑这两类人的需求。
3. 类的使用
类的使用者通常会查看源代码,了解类的工作方式和是否满足需求。在构造函数中使用断言语句(或抛出其他异常)是告知用户类的使用限制的好方法,因为构造函数通常是开发者首先查看的地方。对于无法在代码中体现的不变性,要在用户使用的 API 参考文档中进行记录,文档离代码越近,用户在查看代码时越容易找到。
以下是一个披萨规格类的示例:
超级会员免费看
订阅专栏 解锁全文
8566

被折叠的 条评论
为什么被折叠?



