面向对象设计原则深度解析
1. 单一职责原则在手机设计中的应用
在设计手机功能时,我们可以通过提问“手机自身能做什么”而非“手机提供了哪些服务”,来分离设计中对象的职责。比如,手机自身可以获取自己的电话号码、进行初始化以及连接到手机网络。而手机提供的服务,如打电话、发短信和处理图片等,实际上与实际的手机是相互独立的,因此可以将其分离到 PhoneCall 、 TextMsg 和 Picture 类中。这样,我们将最初的一个类划分为四个独立的类,每个类都只有单一的职责。我们还可以添加一个控制器类来运行整个手机系统,这样也便于添加新功能。这种设计方式虽然增加了类的数量,但简化了设计,使其更易于扩展和修改。
2. 里氏替换原则(LSP)
2.1 里氏替换原则的定义
里氏替换原则(LSP)由麻省理工学院的图灵奖获得者芭芭拉·利斯科夫博士提出,该原则指出所有子类必须能够替换它们的基类。这意味着继承应该设计良好且行为规范,用户应该能够将对象实例化为子类,并透明地使用基类的所有功能。
2.2 违反里氏替换原则的示例
以矩形和正方形为例,我们先定义一个表示矩形的 Rectangle 类:
/**
* class Rectangle
*/
public class Rectangle
{
private double width;
private double height;
/**
* Con
超级会员免费看
订阅专栏 解锁全文
867

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



