统计

留言簿(1)

DB

Others

QA

Tech Website

阅读排行榜

评论排行榜

Java设计模式总结

一、写在前面
        刚开学,趁着有时间把设计模式重新整理一次。学好设计模式是走向架构的第一步,系统架构应该朝着可维护,可扩展,强壮性好的方向去发展。大学的最后一个学期了,时间不多了,3月初就要去腾讯实习了,还有毕设。加油 :)

二、常见的模式分类
 

创建模式

结构模式

行为模式

简单工厂模式

适配器模式

不变模式

工厂方法模式

缺省适配模式

策略模式

抽象工厂模式

合成模式

模版方法模式

单例模式

装饰模式

观察者模式

多例模式

代理模式

迭代子模式

建造模式

享元模式

责任链模式

原始模型模式

门面模式

命令模式

桥梁模式

备忘录模式

状态模式

访问者模式

解释器模式

调停者模式



三、主要模式的定义和描述
以下内容来自《head first 设计模式》一书
 

模式

定义

描述

装饰者

动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案

包装一个对象,以提供新的行为

状态

允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类

封装了基本状态的行为,并使用委托在行为之间切换

迭代器

提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示

在对象的集合之中游走,而不暴露集合的实现

外观(门面)

提供一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更多容易使用

简化一群类的接口

策略

定义算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户

封装可以互换的行为,并使用委托来决定使用那一种

代理

为另一个对象提供一个替身或点位符以访问这个对象

包装对象,以控制对此对象的访问

工厂方法

定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类

由子类决定要创建是具体类是哪一个

抽象工厂

提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类

允许客户创建对象的家族,而无需指定他们的具体类

适配器

将一个类的接口,转换成客户期望另一个接口。适配器让原来不兼容的类可以合作无间

封装对象,并提供不同的接口

观察者

在对象之间定义一对多的依赖,这样一来,当一个对象改变时,依赖它的对象都会收到通知并自动更新

让对象能够在状态改变时被通知

模板方法

在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤

由子类决定如何实现一个算法中的步骤

组合

允许你将对象组成树结构来表现“整体/部分”的层次结构。组合能让客户以一致的方式处理个别对象和对象组合

客户用一致的方式处理对象集合和单个对象

单件(单体)

确保一个类只有一个实例,并提供全局访问点

确保只有一个对象被创建

命令

将请求封装成对象,这可以让你使用不同的请求、队列,或者日志请求来参数化其它对象。命令模式也可以支持撤销操作

封装请求为对象


  四、参考资料
         IBM社区设计模式方面资料: http://www.ibm.com/developerworks/cn/java/design/
         常见OO原则:http://www.blogjava.net/jicheng687/archive/2011/02/13/344174.html

--END--

posted on 2011-02-21 23:40 XXXXXX 阅读(3145) 评论(0)  编辑  收藏 所属分类: Programing


只有注册用户登录后才能发表评论。


网站导航: