Java面向对象之OOP设计原则&设计模式

1.OOP设计原则

1.1  开闭原则

  • 对扩展开放(添加功能对源代码没有影响)
  • 对修改关闭(别人修改了功能之后对使用者没有太大影响)
  • 是所有原则的总目标

1.2  里氏替换原则

  • 子类应当可以替换父类并出现在父类能够出现的地方
  • 是多态的基础

1.3  迪米特原则(最少知识原则)

  • 只与你的直接朋友交谈,不与"陌生人"说话
  • 优点:其目的是降低类之间的耦合度,提高模块的相对独立性
  • 缺点:过度使用迪米特法则会使系统产生大量的中介类,从而增加系统的复杂性

1.4  单一职责原则(DIP)

  • 类不要承担太多的功能,职责要单一
  • 如果承担太多功能,则每个功能的变化都会影响该类

1.5  接口分离原则(ISP)

  • 客户端不应依赖它不需要的接口
  • 可以理解为接口要符合单一职责原则

1.6  依赖倒置原则

  • 高层模块不应该依赖底层模块,二者都应该依赖抽象
  • 抽象不依赖于具体,具体依赖于抽象
  • 中心思想是面向接口编程
  • 为什么?  细节的东西往往是多变的,而越抽象则越稳定

示例:

1.7  组合/聚合复用原则

如果处于代码复用的目的,则应该使用组合/聚合复用原则,而不要使用继承


2. 为什么需要学习设计模式

设计模式(Design pattern)代表了最佳的实践,是很多优秀的软件开发人员的经验总结,是解决特定问题的解决方案。它并不是语法规定,也不拘泥于特定语言。 恰当的使用设计模式可以代码的可复用性,可维护性,可扩展性,健壮性及安全性,这些都是系统非常重要的非功能性需求。

设计模式的广泛使用起始于1995年,GOF(四人帮)出版的《设计模式:可复用面向对象软件基础》。

本部分相关的示例代码:

https://gitee.com/lisenaq/patterndemo.git

3. 常见的设计模式

3.1 单例模式

3.1.1 概念

保证在内存中只用一个实例

3.1.2 使用场景

比如:系统配置文件的管理,这些配置文件只要使用一个单例对象进行读写即可,系统总其他地方需要使用

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值