常用设计模式的小结和实际中的应用

1.单例模式(Singleton): 保证一个类仅有一个实例,并提供一个访问它的全局控制点. 
比如在加载配置文件时, 可使用该模式.

2.工厂模式(Factory): 定义一个用以创建对象的接口, 让子类决定实例化哪个类. 
当遇到需要根据某个前提条件创建不同的类实现时, 会实用工厂模式.

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

4.装饰者模式(Decorator): 动态的给一个对象添加一些额外的职责. 
比如java.io包. BufferedInputStream封装了FileInputStream, 它们都实现了InputStream接口, 但前者实现了readLine方法.

5.代理模式(Proxy): 为其他对象提供一种代理以控制对这个对象的访问. 
比如在用户登录时, 真正的登录类和代理登录类都实现了Login接口, 不同的是Proxy类的方法中增加了用户是否合法的判断, 只有合法时才去调用真正登录类的login方法. 用户访问的其实是Proxy的login方法.

6.适配器模式(Adapter): 将一个类的接口转换成客户希望的另一个接口.

7.建造者模式(Builder): 将一个复杂对象的构建与它的表示分离.

8.策略模式(Strategy): 定义了算法家族, 分别封装起来, 让它们之间可以互相替换.

比如Collections.sort(List list, Comparator c); 可以通过实现多个Comparator接口来达到多种排序的目的.

9.模板模式(Template): 定义一个操作中的算法骨架, 而将一些步骤延迟到子类中. 
比如HibernateTemplate, 在Template中已经定义了Connection开关的实现, 用户只需要在子类中根据不同的业务写不同的sql.

10.外观模式(Facade): 为子系统中的一组接口提供一个一致的界面. 
一直在用, 比如DBUtil, 将所有数据库对象封装了, 只留了DBUtil.getDBUtil()这个接口.

11.观察者模式(Observer): 定义了一种一对多的依赖关系,让多个观察者对象同时监听某一主题对象,在它的状态发生变化时,会通知所有的观察者. 
比如ServletContextListener, 在applcation启动时, 会通知所有这个接口的实现类.

12.命令模式(Command): 将一个请求封装成为一个对象, 使可以用不同的请求对客户进行参数化. 
比如Struts的MVC结构, 其实就是个Command模式.

时间: 2024-10-10 13:49:17

常用设计模式的小结和实际中的应用的相关文章

IOS开发,知识点小结,ios开发中常用的宏定义总结

IOS开发,从应用跳转到用浏览器打开网页: [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.oatos.com/bbs/"]]; 用一个Button覆盖整个cell,添加动作 cell.accessoryType = UITableViewCellAccessoryNone; UIButton *btn = [[UIButton alloc] initWithFrame:CGRec

IOS开发常用设计模式

IOS开发常用设计模式 说起设计模式,感觉自己把握不了笔头,所以单拿出iOS开发中的几种常用设计模式谈一下. 单例模式(Singleton) 概念:整个应用或系统只能有该类的一个实例 在iOS开发我们经常碰到只需要某类一个实例的情况,最常见的莫过于对硬件参数的访问类,比如UIAccelerometer.这个类可以帮助我们获得硬件在各个方向轴上的加速度,但是我们仅仅需要它的一个实例就够了,再多,只会浪费内存. 所以苹果提供了一个UIAccelerometer的实例化方法+sharedAcceler

iOS常用设计模式——适配器Adapter

1.什么是适配器设计模式(Adapter)   (What) 适配器设计模式是一种结构型设计模式, 它的作用是把一个类的接口转换成客户希望的另外一个接口,从而使得原本由于接口不兼容而不能一起工作的那些类可以一起工作. 适配器设计模式有两种实现方式:1.)通过继承来实现两个接口,叫类适配器: 2.)通过引用来避免对象适配器继承被适配对象,叫对象适配器. 图1: 类适配器的UML图 在类适配器中,Adapter与Adaptee之间的关系是继承,我们通过继承来实现对Adaptee中+ specific

编程常用设计模式详解--(上篇)(工厂、单例、建造者、原型)

参考来自:http://zz563143188.iteye.com/blog/1847029 一.设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 结构型模式,共七种:适配器模式.装饰器模式.代理模式.外观模式.桥接模式.组合模式.享元模式. 行为型模式,共十一种:策略模式.模板方法模式.观察者模式.迭代子模式.责任链模式.命令模式.备忘录模式.状态模式.访问者模式.中介者模式.解释器模式. 二.设计模式的六大原则 1

常用C库函数小结

1. sprintf 原型:int sprintf( char *buffer, const char *format, [ argument] - ); 功能:将格式化后的字符串写在buffer中,常用于把数字打印在字符串中:连接字符串. 参数:buffer - 待写入缓冲区: format - 与printf一致,格式化字符串 : 返回值:字符串长度,strlen. 2. sscanf 原型:int sscanf(const char *buffer,const char *format,[

常用设计模式之代理(动态代理)

常用设计模式之代理(动态代理) UML Code1 1 interface Subject{void doSth();} 2 class RealSubject implements Subject{ 3 public void doSth(){ 4 System.out.println("RealSubject doSth...."); 5 } 6 } 7 class ProxyHandler implements InvocationHandler 8 { 9 private Ob

Android常用设计模式

Android常用设计模式之观察者模式 观察者设计模式在Android应用中会经常用到,模式原理类似于这样的场景: 用户订报纸,然后在报社登记,报社来统计用户(添加用户),用户也可以取消订阅,报社删除用户:然后用户观察报社, 当有了新的报纸,报社就告诉用户并发送报纸的用户的手上,这其中,用户是观察者,报社是被观察者,一旦报纸有了新的 (数据发生改变)报社就会通知用户: 代码示例如下: 首先我们根据用户的共同特征,都要接受报纸,来提取出来一个公共的用户接口 1 /** 2 * 用户接口 3 * 4

编程常用设计模式详解--(中篇)(适配器、装饰、代理、外观、桥接、组合、享元)

摘自:http://blog.csdn.net/zhangerqing/article/details/8239539 我们接着讨论设计模式,上篇文章我讲完了5种创建型模式,这章开始,我将讲下7种结构型模式:适配器模式.装饰模式.代理模式.外观模式.桥接模式.组合模式.享元模式.其中对象的适配器模式是各种模式的起源,我们看下面的图: 6.适配器模式(Adapter) 适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题.主要分为三类:类的适配器

iOS.常用设计模式.01.单例模式

使用单例模式的类: UIApplication UIAccelerometer NSUserDefaults NSNotificationCenter NSFileManager NSBundle等 Singleton.h #import <Foundation/Foundation.h> @interface Singleton : NSObject // 始终返回同一个Singleton的指针 + (Singleton *)sharedManager; @property (strong,