JAVA中的设计模式——概览

设计模式代表了面向对象的软件开发者最佳的实践,是软件开发者在软件开发过程中所遇到一些问题的优秀解决方案。这些解决方案是无数的软件开发者在大量的实践中总结出来的。
这个系列文章将会通过介绍和实例,带领你一步一步走进设计模式的大门。

前提条件

在学习设计模式之前,你最好对基本JAVA语法有一定的了解。
什么是GOF?
1994年四个作者Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides出版了一本书叫《Design Patterns - Elements of Reusable Object-Oriented Software》中文称之为《设计模式》,在这本书里首先引入了软件开发中设计模式的概念。这四位作者后来被一并称为"四人组"(Gang of Four (GOF))。在他们的介绍中,设计模式一般都遵循以下面向对象的原则:

  • 合成复用原则(Composite Reuse Principle)
    相较于类继承,更倾向使用对象组合。也就是说,尽量使用合成/聚合的方式,而不是类继承。
  • 开闭原则(open close principle)
    开放即指对扩展开放,对修改关闭 简而言之,就是扩展功能的时候应该尽量的不修改原有的代码。
  • 里氏代换原则(liskov substitution principle)
    可以简单理解为派生类与基类的替换关系,一旦程序中出现基类,那么这个基类若是被派生类替换了,也应该是合适的,并且对程序功能不受影响,该原则实际上是开闭原则的补充。 基类能真正复用,派生类也能够在基类的基础上增加新的行为。实现开闭原则的关键步骤就是抽象化,而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范
  • 依赖倒转原则(dependence inverse principle)
    这个原则是开闭原则的基础,具体内容:针对接口编程,依赖于抽象而不依赖于具体
  • 接口隔离原则
    使用多个隔离的接口,比使用单个接口要好,该模式出发点在于大一点的软件设计架构,便于维护升级,降低耦合度
  • 迪米特法则,又称最少知道原则(Demeter Principle)
    一个实体应当尽量少地与其他实体之间发生相互作用,使得系统功能模块相对独立

设计模式的用途

在软件开发中,设计模式主要有两个作用:

开发者们公共的平台

设计模式提供了标准的术语。比如,单例模式表示要使用同一个对象,所以如果所有的开发者都熟悉单例模式的话,某些开发者在开发过程中使用了单例模式并告知另外的开发者,另外的开发者就会明白其中的含义。

最佳实践

经过长时间的发展和演进,设计模式已经是解决某些问题的最佳实践。学习这些模式对于没有经验的开发者快速学习软件设计大有裨益。

设计模式的类型

设计模式的参考书《Design Patterns - Elements of Reusable Object-Oriented Software》介绍了23种常用设计模式。这23种设计模式可以划分为4大类,创建型模式、结构型模式、行为型模式以及J2EE模式类。如下表所示:

序号设计模式分类以及描述
1创造型模式,这种设计模式隐藏创建对象的创建逻辑,提供创建对象的接口,而非使用new关键字进行创建,这给了程序非常大的灵活性来决定到底创建哪一个对象。
2结构型模式,这些设计模式关注类和对象的组合。继承的概念被用来组合接口和定义组合对象获得新功能的方式
3行为型模式,这些设计模式关注对象之间的通信
4J2EE模式类,这些设计模式特别关注表示层。这些模式是由 Sun Java Center 鉴定的

本文翻译自设计模式概览
参考文章:
https://segmentfault.com/a/1190000016014855

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值