《软件设计重构》读书笔记(3)-封装型缺陷

本文探讨了软件设计中的封装原则及其重要性,分析了不充分封装、泄漏封装、缺失封装和未利用封装这四种常见的封装缺陷,提供了相应的重构建议。通过改进封装,可以增强软件的灵活性,降低维护成本。
摘要由CSDN通过智能技术生成

封装原则倡导通过隐藏实现细节和封装变化还实现关注点分离。违反了封装原则会导致封装性缺陷。下图展示了封装原则的实现方法和相对应的封装型缺陷。


下面详细说明这四种封装型缺陷。

不充分的封装 缺陷

【概念定义】对于抽象的成员,声明的访问权限超过了实际需要的权限,会导致不充分的封装缺陷

【违反原则】违反了封装原则,依赖倒转原则

【缺陷实例】类中声明的公有字段,如System.in和System.out;极端情况是存在一些全局的变量和数据结构(public static)。

【重构建议】将类中的字段修改成私有的,并提供共有的访问器方法。这样客户的程序只依赖于接口,而不依赖于具体的实现。

泄漏的封装 缺陷

【概念定义】抽象通过公有接口暴露了底层的实现细节,会导致以后的修改升级变得困难,同时使得客户程序直接可以修改内部状态。导致了泄漏的封装缺陷。

【违反原则】封装原则

【缺陷实例】对于某应用,用于存放待排序对象的ArrayList底层数据结构,提供公有方法getList()直接返回底层的list,使客户可以直接修改该array list。

【重构建议】不要向客户放回内部数据结构的指针。可以考虑返回内部数据结构的深层克隆或者一个不可修改的对象。对上例而言,

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值