类接口的重构
最后更新于:2022-04-02 04:16:49
[TOC]
## 将一个类变成两个
如果一个类同时具备两种或更多的截然不同的功能,请把这个类转化为多个类,使得每个类完成一种明确定义的功能。
## 删除类
如果某个类无所事事,然后把这个类删掉
## 去除委托关系
如果类A调用了类B和类C,实际上类A只应该调用类B,类B调用类C,就需要重新抽象
## 用委托代替继承
如果某类需要用到另一个类,但又打算获取该类接口更多的控制权,那么可以让基类成为原派生类的一个成员,并公开它的一组成员函数,以完成一种内聚的抽象。
##用继承代替委托
如果某个类公开了委托类(成员类)所有成员函数,那么该类应该从委托类继承而来,而不是使用该类。
## 对暴露在外的成员变量进行封装
如果数据成员是公用的,请将其改为私用,然后通过成员函数来访问该数据成员的值。
## 对于不能修改的类成员,删除相关的Set()成员函数
## 隐藏那些不会在类之外被用到的成员函数
## 封装不会使用的成员函数
如果发现自己往往只使用类接口的一部分,那么就为类创建新的接口,仅仅把那些必须的成员函数暴露给类的外部,需要注意,新的接口应该为类提供一致的抽象。
## 合并那些实现非常类似的基类和派生类
如果派生类并未提供更多的特殊化,那么就应该把它合并会基类。
';