SA 面向对象的设计法则
来源:互联网 发布:大学生网络党校考试 编辑:程序博客网 时间:2024/06/06 19:44
面向对象的设计法则
1. 优先使用组合(对象),而非继承(类)
(1) 组合
优点:容器类仅能通过被包含对象的接口来对其进行访问
黑盒复用
相互依赖性比较小
缺点:导致系统中的对象比较多
为了能将多个不同的对象作为组合块,必须仔细定义接口
(2) 继承
优点:容易实现,多数方法都可以通过继承而来
易于修改或扩展那些被复用的实现
缺点:破坏了封装性
白盒复用
父类的实现更改时,子类也不得不随之更改
(3) 什么时候使用继承【4个条件】
子类表达了“是一个。。。。的特殊类型”
子类对父类的职责进行扩展
子类的一个实例永远不需要转化为其他类的对象
对于一个位于实际的问题域的类而言,其子类特指一种角色、交易或设备
2. 面对接口编程,而非接口的实现
3. 开放封闭法则(OCP)
对扩展开放
对更改封闭
4. Liskov替换法则(LSP)
关注的是行为功能,属于外在、公开的,是客户程序所以来的
清楚地表明了ISA关系全部都是与行为有关的。【正方形和长方形】
为了保持LSP,所有子类必须符合使用基类的Client所期望的行为。【所有子类都能通过其基类进行访问】
一个子类不得具有比基类更加严格的限制。
阅读全文
0 0
- SA 面向对象的设计法则
- 面向对象的设计法则
- 一些面向对象的设计法则 2
- 一些面向对象的设计法则
- 面向对象设计/编程的四大法则
- 一些面向对象的设计法则
- 一些面向对象的设计法则
- 一些面向对象的设计法则(1)
- 一些面向对象的设计法则(2)
- 一些面向对象的设计法则(3)
- 一些面向对象的设计法则(4)
- 一些面向对象的设计法则
- 一些面向对象的设计法则
- 一些面向对象的设计法则(1)
- 一些面向对象的设计法则(2)
- 一些面向对象的设计法则(3)
- 一些面向对象的设计法则(4)
- 一些面向对象的设计法则(2)
- The Ultimate Guide To iPhone Resolutions
- spark2.1.0WordCountCluster
- 88. Merge Sorted Array
- soapUI(带界面的)在windows下的用法(转)
- 日常训练 20170603 棋盘
- SA 面向对象的设计法则
- Dependency Injection 依赖注入
- 学编程需要准备啥
- android中怎样将EditText的值转换成Double类型
- sql sever 数据库文件收索操作
- ssh反向代理,让内网的服务器可以通过外网访问
- 多目标进化算法(MOEA)概述
- 【React Native开发】- 触摸事件处理
- Linux Out of memory error