面向对象的设计模式

面向对象的设计目标:
1 可扩展性 → 容易添加新的功能
2 灵活性 → 添加新功能代码时,修改平稳发生
3 可插入性 → 容易将一个类抽出去,同时将另一个有同样接口的类加进来

终极的判断软件设计质量标准:
高内聚 :一个软件模块是由相关性很强的代码组成
低耦合 :模块与模块之间,尽可能使其独立存在

设计的基本原则:
1 单一职责原则
2 开放-封闭原则
3 里氏代换原则
4 依赖倒置原则
5 接口隔离原则
6 迪米特法则

1 单一职责原则

只管它该管的,不该管的不管
一个类只负责一个功能领域的相应职责
高内聚
一个类(大到模块,小到方法)承担的职责越多,被复用的可能性越小 → 应将不同的职责封装在不同的类中
示例:
Dao 只做查询数据库的功能
在这里插入图片描述

2 开放-封闭原则

对扩展开放,对修改关闭
软件实体尽量在不修改原有代码的情况下进行扩展
高内聚 低耦合
为了满足开闭原则,需要对系统进行抽象化设计,"抽象化"是开闭原则的关键
示例:
展示图表,把条形图 饼状图 折线图 抽象出一个 基本图表出来.
在这里插入图片描述

3 里氏代换原则

低耦合
优点:可以很容易的实现 同一父类下各个子类的互换,而客户端毫无察觉
示例:
玩具枪是不能射击的,为了方便以后替换,所以把 真枪 和 玩具枪 分开来
在这里插入图片描述

4 依赖倒置原则

定义:要依赖于抽象,不要依赖于具体
低耦合
要针对接口编程,不针对实现编程
优点:
依赖倒置原则 使细节和策略都依赖于抽象,抽象的稳定性决定了系统的稳定性
示例:
妈妈不仅能读书,还能读报纸.抽象出IReader啥都能读
在这里插入图片描述

5 接口隔离原则

定义:使用多个专一功能的接口 比 使用一个总接口 总要好
一个类对另一个类的依赖性 应当是建立在 最小接口上的,过于臃肿的接口是对接口的污染.
高内聚
优点:会使一个软件系统功能扩展时,修改的压力不会传到别的对象那里.
示例:
找演员和找模特 的要求有相同点(身材好),把(身材好)这个功能 单独放在一个接口.
注意:接口大小要适度,过大和过小都不好

在这里插入图片描述
在这里插入图片描述

6 迪米特法则

又叫做 最小知识原则,简写LKP
定义:对象与对象之间应该使用尽可能少的方法来管关联,避免千丝万缕的关系
低耦合
类 知道的其他的类应尽量少
类可以访问其他类的 方法或属性 应 尽量少
示例:
lucy 和 lily 只要知道 上KFC 就能吃到 汉堡包,lucy 和 lily 不需要知道 汉堡包 是怎么制作的
在这里插入图片描述

关于UML图的表示请点这里

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值