设计模式总结

来源:互联网 发布:淘宝ued团队 编辑:程序博客网 时间:2024/06/05 10:47

1.观察者模式

把观察者对象存到主题中的一个数组属性,如果主题改变了状态,就轮询通知所有观察者(也就是调用观察者更新状态的方法)

2.单例模式

如果是多线程程序,需要有一个同步锁,防止多线程同时进入造成 instance 被多次实例化。

使用场景: 1、要求生产唯一序列号。 2、WEB 中的计数器,不用每次刷新都在数据库里加一次,用单例先缓存起来。 3、创建的一个对象需要消耗的资源过多,比如 I/O 与数据库的连接等。

3责任链模式

在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。

比如:日志的不同级别记录(由严重到轻度),冒泡传递。

4.拦截过滤器模式

拦截过滤器模式(Intercepting Filter Pattern)用于对应用程序的请求或响应做一些预处理/后处理。定义过滤器,并在把请求传给实际目标应用程序之前应用在请求上。过滤器可以做认证/授权/记录日志,或者跟踪请求,然后把请求传给相应的处理程序

5.策略模式

策略有很多种,也就是对同样的输入有各种不同的处理方式。

优点: 1、算法可以自由切换。 2、避免使用多重条件判断。 3、扩展性良好。

缺点: 1、策略类会增多。 2、所有策略类都需要对外暴露。

使用场景: 1、如果在一个系统里面有许多类,它们之间的区别仅在于它们的行为,那么使用策略模式可以动态地让一个对象在许多行为中选择一种行为。 2、一个系统需要动态地在几种算法中选择一种。 3、如果一个对象有很多的行为,如果不用恰当的模式,这些行为就只好使用多重的条件选择语句来实现。


.
0 0
原创粉丝点击