SA 面向对象的设计法则

xiaoxiao2021-02-27  146

面向对象的设计法则

1. 优先使用组合(对象),而非继承(类) (1) 组合         优点:容器类仅能通过被包含对象的接口来对其进行访问 黑盒复用 相互依赖性比较小         缺点:导致系统中的对象比较多 为了能将多个不同的对象作为组合块,必须仔细定义接口 (2) 继承         优点:容易实现,多数方法都可以通过继承而来 易于修改或扩展那些被复用的实现         缺点:破坏了封装性 白盒复用 父类的实现更改时,子类也不得不随之更改 (3) 什么时候使用继承【4个条件】         子类表达了“是一个。。。。的特殊类型”         子类对父类的职责进行扩展         子类的一个实例永远不需要转化为其他类的对象         对于一个位于实际的问题域的类而言,其子类特指一种角色、交易或设备

2. 面对接口编程,而非接口的实现

3. 开放封闭法则(OCP)         对扩展开放         对更改封闭

4. Liskov替换法则(LSP)         关注的是行为功能,属于外在、公开的,是客户程序所以来的         清楚地表明了ISA关系全部都是与行为有关的。【正方形和长方形】         为了保持LSP,所有子类必须符合使用基类的Client所期望的行为。【所有子类都能通过其基类进行访问】         一个子类不得具有比基类更加严格的限制。

转载请注明原文地址: https://www.6miu.com/read-14087.html

最新回复(0)