上学时自学了设计模式,没看懂,最近又重新学习,做一下分享。
Gof的设计模式按用途分三类:创建模式、结构模式、行为模式。下面介绍创建模式。
一、设计模式之Factory
目的:1、提供一个借口为创建一组相关的对象,而不指定它们具体的类的接口。2、一个封装的层次结构:许多可能的“平台”,建设一套“产品”。3、新的操作符被认为是有害的。
定义:提供创建对象的借口。
作用:用来创建对象;如名字“工厂”,就是用来产各种东西的。
建造手机UML图:
理解:通过不同对象创建为一个新对象。也就是:通过各种零件、部件出来产品。
二、设计模式之Prototype
定义:用原型实例制定创建对象的种类,通过拷贝这些原型创建新的对象。
工作原理:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建。
如何使用: 因为Java中的提供clone()方法来实现对象的克隆,所以Prototype模式实现一下子变得很简单。
使用场景:1、一个对象多个修改者的场景:一个对象需要提供给其他对象访问,而且各个调用者可能都需要修改其值时,可以考虑使用原型模式拷贝多个对象供调用者使用;
2、性能和安全要求的场景:通过new产生一个对象需要非常繁琐的数据准备或访问权限,则可以使用原型模式;在实际项目中,原型模式很少单独出现,一般是和工厂方 法模式一起出现,通过clone的方法创建一个对象,然后由工厂方法提供给调用者。原型模式已经与Java融为浑然一体,大家可以随手拿来使用。
三、设计模式之Builder
定义:将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。
作用:是为了将构建复杂对象的过程和它的部件解耦注意是解耦过程和部件。
四、设计模式之Singleton
定义:Singleton模式的主要作用是在java应用程序中,保证单个class只有一个实例存在。