设计模式

工厂模式:不用知道对象具体的创建流程,只需要提供给工厂所需要的生产信息就可以拿到所需要的对象。

抽象工厂模式:有多个工厂的时候,又需要对工厂多做一层抽象

单例模式:使一个类在堆中只产生一个对象

原型模式:通过克隆的方法来获得一个新的对象,减少new对象过程中的开销。

建造者模式:和工厂模式有点像相似,建造者模式的粒度比工厂模式要小,建造者设计到组件的具体组合过程,不同的组合产生不同的对象(其中组件和相同的,最终的组合出来的产品不同,类似乐高积木这样吧),Director类的作用是啥?(多一层抽象,解耦?)

适配器模式:适配器类实现原接口,引用第三方要适配的类

桥接器模式:暂时理解不了???

过滤器模式:没什么特别,就是多增加一个过滤器类,通过一个过滤的方法出去不合适的数据。

组合模式:类中的属性包含一个对自身类型引用的属性,例如一个员工类(Employee)中包含一个下属(subEmployees)的属性,类型为List<Employee> subEmployees,如下

public class Employee{

   List<Employee> subEmployees;

}

装饰器模式:没有通过继承的方式,而是通过引用需要增强的类来实现功能的扩展,非常常见的一种模式。

外观模式(门面模式):整合出一个门面类,通过对门面类的操作来简化对系统的访问,例如Java的三层开发(Controller,Service,Dao)。

享元模式:避免大量的重复对象的创建,对象存储在一个集合内,做一个唯一的标记,如果二次调用直接从集合中获取即可, 避免创建重复的对象,造成内存浪费。)=应用有:String,数据库的数据池(待考究)。(有线程不安全的问题,内部状态和外部状态的分离指的是?)

代理模式:新增一个代理类,对目标类的访问变成对代理类的访问。

1、和适配器模式的区别:适配器模式主要改变所考虑对象的接口,而代理模式不能改变所代理类的接口。 2、和装饰器模式的区别:装饰器模式为了增强功能,而代理模式是为了加以控制。

责任链模式:多个对象做成一条链,对一个请求做处理(请求沿着责任链传递),解除了请求对象和处理对象的耦合。

命令模式:不是很了解

解释器模式:用得比较少

迭代器模式:提供迭代器来遍历一个聚合对象(指的是Map,Set,List这些),而不是直接通过聚合对象本身操作。

中介者模式:还没理解(???)。

备忘录模式:对修改前做备份处理,以便恢复(回滚);

观察者模式:被观察者状态发生变化是,通知观察者做相应的处理。关键点:被观察者类里面有一个List观察者。

状态模式:上下文(context)根据状态(state)的不同而做不同的动作,参考文档所写的代码不太恰当,应该是给context设置不同的状态,而不是在doAction里面对context做修改?待考究

空对象模型:用一个空对象来代替null对象。

策略模式:就是目前理解的状态模式,和状态模式的区别??状态模式理解错误?

模板模式:将一些通用的算法找整合出一个模板,具体细节的实现延迟到子类。

访问者模式:没理解???

MVC模式:开发常用的模式

业务代表模型:也是对多种业务的抽象整合出来的一个业务代表类,通过访问业务代表类访问业务。

设计模式往往是:做新一层的抽象,解除耦合,要么就是一些设计技巧(例如单利模式,模板模式),要理解面向接口编程的思想

组合实体模式:

数据访问对象模式:常用的开发模式

前端控制器模式:

拦截过滤器模式:

服务器定位模式:

传输对象模式:

参考链接:

http://www.runoob.com/design-pattern/state-pattern.html

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值