设计模式代表了经验丰富的面向对象软件开发人员使用的最佳实践。设计模式是软件开发人员在软件开发过程中遇到的一般问题的解决方案,这些解决方案是在相当长的一段时间内由众多软件开发人员通过反复试验获得的。
什么是四人帮(GOF)?
1994年,四位作者Erich Gamma,Richard Helm,Ralph Johnson和John Vlissides出版了一本名为“ 设计模式 - 可重复使用的面向对象软件的元素 ”的书,该书启动了软件开发中的设计模式概念。
这些作者统称为四人帮(GOF)。根据这些作者,设计模式主要基于面向对象设计的以下原则。
-
编程到接口而不是实现
-
赞成对象组合而不是继承
设计模式的用法
设计模式在软件开发中有两个主要用途。
开发人员的通用平台
设计模式提供标准术语,并且特定于特定场景。例如,单例设计模式表示单个对象的使用,因此所有熟悉单一设计模式的开发人员都将使用单个对象,并且他们可以告诉对方程序遵循单一模式。
最佳实践
设计模式已经发展了很长一段时间,它们为软件开发过程中遇到的某些问题提供了最佳解决方案。学习这些模式可以帮助没有经验的开发人员以简单快捷的方式学习软件设计。
设计模式的类型
根据设计模式参考书“ 设计模式 - 可重用面向对象软件的元素”,有23种设计模式可分为三类:创建模式,结构模式和行为模式。我们还将讨论另一类设计模式:J2EE设计模式。
- 创建模式
这些设计模式提供了一种在隐藏创建逻辑的同时创建对象的方法,而不是使用new运算符直接实例化对象。这为程序提供了更大的灵活性,可以决定需要为给定的用例创建哪些对象。 - 结构模式
这些设计模式涉及类和对象组成。继承的概念用于组合接口并定义组合对象以获得新功能的方法。 - 行为模式
这些设计模式特别关注对象之间的通信。 - J2EE模式
这些设计模式特别关注表示层。这些模式由Sun Java Center识别。
Design Pattern - Factory Pattern
工厂模式是Java中最常用的设计模式之一。这种类型的设计模式属于创建模式,因为此模式提供了创建对象的最佳方法之一。
在Factory模式中,我们创建对象而不将创建逻辑暴露给客户端,并使用通用接口引用新创建的对象。
Design Pattern - Singleton Pattern
单例模式是Java中最简单的设计模式之一。这种类型的设计模式属于创建模式,因为此模式提供了创建对象的最佳方法之一。
此模式涉及单个类,该类负责创建对象,同时确保仅创建单个对象。此类提供了一种访问其唯一对象的方法,该对象可以直接访问,而无需实例化该类的对象。
Design Patterns - Prototype Pattern
原型模式是指在保持性能的同时创建重复对象。这种类型的设计模式属于创建模式,因为此模式提供了创建对象的最佳方法之一。
此模式涉及实现原型接口,该接口告诉创建当前对象的克隆。当直接创建对象成本高时使用此模式。例如,在昂贵的数据库操作之后创建对象。我们可以缓存对象,在下一个请求时返回其克隆,并在需要时更新数据库,从而减少数据库调用。
Design Patterns - Proxy Pattern
在代理模式中,类表示另一个类的功能。这种类型的设计模式属于结构模式。
在代理模式中,我们创建具有原始对象的对象以将其功能与外部世界接口。