Java技术_每天掌握一种设计模式(001)_设计模式概念及分类

Java技术_每天掌握一种设计模式(001)_设计模式概念及分类

Java技术_每天掌握一种设计模式(002)_使用场景及简单实例(创建型:单例模式)

Java技术_每天掌握一种设计模式(003)_使用场景及简单实例(创建型:工厂方法)

Java技术_每天掌握一种设计模式(004)_使用场景及简单实例(创建型:抽象工厂)

Java技术_每天掌握一种设计模式(005)_使用场景及简单实例(创建型:建造模式)

Java技术_每天掌握一种设计模式(006)_使用场景及简单实例(创建型:原型模式)

1.文章目的

用最简单的语言、最简单的例子讲解java的设计模式。

望各位指教!

例子不是简单的讲理论,均是项目中实际能用到的。

例如提到工厂,不会举是car、human这种理解简单却看不到用处的例子;取而代之我会举"通知"这个例子,短信、邮件、oa待办这三个都具有通知方法的产品,在讲理论的同时,更具实用价值。

实例代码下载:创建型5种、结构型7种、行为型11种、其他(代码都会粘到博文中,都搞完了打个包再发,博文中不对实例做解释的原因是:代码里注释比较详细)。

2.设计模式概念

概念:在一定条件下,解决某一类问题的解决方案。

描述:用来解决开发者重复发生的问题的一套解决方案(该方案是经过千万人优化整合的)。

基本要素:环境(前提条件)、问题、解决方案。

意义:每次碰到类似问题,可以直接使用该方案,而不用做重复的劳动。

3.设计模式分类

根据要解决问题的不同,大致分为三类:

创建型:解决创建对象时的问题,主要目的是:更高效的创建对象、更合理的管理对象等等。

结构型:解决对象组成、对象之间关系的问题,主要目的是:更高的可维护性、更健壮的代码,更松散的耦合性等等。

行为型:解决对象行为、对象行为关系的问题,主要目的是:更清晰的行为功能、更高的协作效率等等。

4.常见设计模式(23种)

创建型(5种,均按照使用频率排序):

1、单例模式(Singleton):一个类有且仅有一个实例,并且自行实例化并向整个系统提供。

2、工厂方法(Factory Method):提供一个用于创建对象的接口,让其实现类决定实例化哪一个类,并且由该实现类创建对应类的实例。

3、抽象工厂(Abstract Factory):提供一个用于创建一系列相关或相互依赖对象的接口,而无须指定它们的具体类。

4、建造模式(Builder):将一个复杂对象的构建与他的表示相分离,使得同样的构建过程可以创建不同的表示。

5、原型模式(Prototype):用原型实例指定创建对象的种类,并且通过拷贝来创建新的对象。


结构型(7种,均按照使用频率排序):

1、组合模式(Composite):将对象组合成树形结构,用来表示表示整体的关系。

2、外观模式(Facade):为子系统中的一组接口提供一致的界面,使得子系统更容易使用。

3、代理模式(Proxy):为其他对象提供一个代理对象,通过代理对象控制对象的访问。

4、适配器模式(Adapter):将一个类的接口转换成另一个接口,使得原本由于接口不兼容的类可以一起工作。

5、装饰模式(Decorator):动态地给一个对象增加功能。

6、桥模式(Bridge):将抽象部分与它的实现部分相分离。

7、享元模式(Flyweight):复用、共享我们内存中已存在的对象,降低系统创建对象实例的性能消耗。


行为型(11种,均按照使用频率排序):

1、迭代器模式(Iterator):提供一个方法,顺序访问一个聚合对象的各个元素,而又不需要暴露该对象的内部表示。

2、观察者模式(Observer):定义对象间一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知自动更新。

3、模板方法(Template Method):定义一个操作中的算法的框架,使得可以不改变一个算法的结构即可以重定义该算法得某些特定步骤。

4、命令模式(Command):将一个请求封装为一个对象,可以用不同的请求进行参数化,对请求排队和记录请求日志,以及支持可撤销的操作。

5、状态模式(State):允许对象在其内部状态改变时,改变他的行为,看起来就像改变了他的类。

6、策略模式(Strategy):定义一系列的算法,把他们一个个封装起来,并使他们可以互相替换,本模式使得算法可以独立于使用它们的客户。

7、职责链模式(Chain of Responsibility):若某个对象处理不了该请求,则会传到下一个对象,直到处理为止,避免了请求的送发者和接收者之间的耦合关系。

8、中介者模式(Mediator):用一个中介对象封装一系列的对象交互。

9、访问者模式(Visitor):表示一个作用于某对象结构中的各元素的操作,可以在不改变各元素类的前提下,定义作用于这个元素的新操作。

10、解释器模式(Interpreter):定义语法中的一个表示,并定义一个解释器,使用该表示来解释语言中的句子。

11、备忘录模式(Memento):在不破坏对象的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。

原文地址:http://blog.csdn.net/ooppookid/article/details/42554235

时间: 2024-12-23 01:32:08

Java技术_每天掌握一种设计模式(001)_设计模式概念及分类的相关文章

Java技术_每天掌握一种设计模式(003)_使用场景及简单实例(创建型:工厂方法)

Java技术_每天掌握一种设计模式(001)_设计模式概念及分类 Java技术_每天掌握一种设计模式(002)_使用场景及简单实例(创建型:单例模式) Java技术_每天掌握一种设计模式(003)_使用场景及简单实例(创建型:工厂方法) Java技术_每天掌握一种设计模式(004)_使用场景及简单实例(创建型:抽象工厂) Java技术_每天掌握一种设计模式(005)_使用场景及简单实例(创建型:建造模式) Java技术_每天掌握一种设计模式(006)_使用场景及简单实例(创建型:原型模式) 1.

Java技术_每天掌握一种设计模式(002)_使用场景及简单实例(创建型:单例模式)

Java技术_每天掌握一种设计模式(001)_设计模式概念及分类 Java技术_每天掌握一种设计模式(002)_使用场景及简单实例(创建型:单例模式) Java技术_每天掌握一种设计模式(003)_使用场景及简单实例(创建型:工厂方法) Java技术_每天掌握一种设计模式(004)_使用场景及简单实例(创建型:抽象工厂) Java技术_每天掌握一种设计模式(005)_使用场景及简单实例(创建型:建造模式) Java技术_每天掌握一种设计模式(006)_使用场景及简单实例(创建型:原型模式) 1.

Java技术_每天掌握一种设计模式(004)_使用场景及简单实例(创建型:抽象工厂)

Java技术_每天掌握一种设计模式(001)_设计模式概念及分类 Java技术_每天掌握一种设计模式(002)_使用场景及简单实例(创建型:单例模式) Java技术_每天掌握一种设计模式(003)_使用场景及简单实例(创建型:工厂方法) Java技术_每天掌握一种设计模式(004)_使用场景及简单实例(创建型:抽象工厂) Java技术_每天掌握一种设计模式(005)_使用场景及简单实例(创建型:建造模式) Java技术_每天掌握一种设计模式(006)_使用场景及简单实例(创建型:原型模式) 1.

Java技术_每天掌握一种设计模式(006)_使用场景及简单实例(创建型:原型模式)

1.模式描述 用原型实例指定创建对象的种类,并且通过拷贝来创建新的对象. 2.模式作用 可以一定程度上解耦,消费者和对象的构造过程隔离开,对象如何构造与消费者完全无关. 可以一定程度提升效率,复杂对象的构造往往需要较长的时间(中间可能会进行复杂运算或者数据库交互),clone消耗的资源一般情况下会少很多. 可以一定程度增加代码的封装性,避免复杂的构造过程. 等等.//TODO 3.适用场景 需要创建一个复杂的.构造耗时很多的对象,且已有一个同类对象的时候. 消费者不关心对象构造过程的时候. 等等

Java开发中的23种设计模式详解(转)

Java开发中的23种设计模式详解(转) 设计模式(Design Patterns)                                   --可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样.项目中合

Java开发中的23种设计模式详解(推荐)_java

设计模式(Design Patterns)                                   --可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样.项目中合理的运用设计模式可以完美的解决很多问题,每

从追MM谈Java的23种设计模式

Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE MicrosoftInternetExplorer4 从追MM 谈Java 的23 种设计模式   1 .FACTORY- 追MM 少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM 爱吃的东西,虽然口味有所不同,但不管你带MM 去麦当劳或肯 德基,只管向服务员说" 来四个鸡翅" 就行了.麦当劳和肯德基就是生产鸡翅的Factory.   工厂模式:客户类和工厂类分开.消费者任

Java技术_基础技术(0003)_类执行顺序详解+实例(阿里面试题)+详细讲解+流程图

Java技术_基础技术(0001)_后台模拟调用action Java技术_基础技术(0002)_中间件启动class加载顺序(以tomcat为例) Java技术_基础技术(0003)_类执行顺序详解+实例(阿里面试题)+详细讲解+流程图 Java技术_基础技术(0004)_eclipse远程调试tomcat 基础技术: 对于java类各个成员的执行顺序,现拿出阿里的面试题作为样例(例子非常好,是用心出的题),在这里重新说明一下java类执行顺序的原则. 源码下载(包含题.结果.分析过程) 一.

关于java问题-java编程思想的23种设计模式有哪些

问题描述 java编程思想的23种设计模式有哪些 例如,单例设计模式其它就不知道了?可以的话在给个例子描述一下 解决方案 根据caozhy的提示,再整理一下 1. Memento(备忘录) 2. Chain of Responsibility(责任链) 3. Observer(观察者 4. Command(命令模式) 5. State(状态模式) 6. Interpreter(解释器 7. Strategy(策略模式) 8. Iterator(迭代子 9. Template Method(模板方