![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
strugglelin
这个作者很懒,什么都没留下…
展开
-
建造者模式
建造者模式 定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 优点:封装性(不需要关心每一个具体的模型内部是如何实现的);建造者独立,容易扩展;便于控制细节风险。 使用场景:相同的方法,不同的执行顺序,产生不同的事件结果时;多个部件或零件,都可以装配到一个对象中,但是产生的运行结果又不相同时。 建造汽车模型为例1.Product产品类/汽车模板类 public abs原创 2017-12-08 18:33:46 · 209 阅读 · 0 评论 -
代理模式
代理模式 定义:为其他对象提供一种代理以控制对这个对象的访问。 包括对象:Subject抽象主题角色(抽象类或接口)、RealSubject具体主题角色(被委托角色、被代理角色)、Proxy代理主题角色(负责对真实角色的应用,把所有抽象主题类定义的方法限制委托给真实主题角色实现,并且在真实主题角色处理完毕前后做预处理和善后处理工作)。 优点:职责清晰(真实的角色就是实现实际的业务逻辑,通过后期的代理原创 2017-12-13 16:25:04 · 146 阅读 · 0 评论 -
原型模式
原型模式 定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 优点:原型模式是在内存二进制流的拷贝,要比直接new一个对象性能好很多,特别是要在一个循环体内产生大量的对象时,原型模式可以更好地体现其优点;逃避构造函数的约束,直接在内存中拷贝,构造函数不会执行。 浅拷贝:Java做了一个偷懒的拷贝动作,Object类提供的方法clone只是拷贝本对象,原始类型比如int、long、原创 2017-12-24 21:56:52 · 155 阅读 · 0 评论 -
工厂模式
工厂模式 工厂模式定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。 工厂模式优点:良好封装性(通过类名创建对象)、易于扩展性(增加具体产品方便)、屏蔽产品类(产品类的实现如何变化,调用者都不需要关 心)、典型解耦框架(高层模块值需要知道产品的抽象类,其他的实 现类都不用关心)。 1.普通工厂模式1.抽象产品类public abstract cla原创 2017-11-28 08:24:34 · 177 阅读 · 0 评论 -
单例模式
单例模式 单例模式定义:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 1.饿汉式 public class Singleton1 { private static Singleton1 instance = new Singleton1(); private Singleton1() { } public static Si原创 2017-11-27 22:52:42 · 276 阅读 · 0 评论 -
抽象工厂模式
抽象工厂模式 抽象工厂模式(Abstract Factory Pattern):为创建一组相关或相互依赖的对象提供一个接口,而且无须指定它们的具体类。 优点:封装性(工厂创建对象,增加一个具体产品方便)、产品族内的约束为非公开状态(具体工厂内实现) 缺点:产品族扩展困难(增加一个产品C,产品家族由原来的2个增加到3个) 1.抽象产品类public abstract class AbstractPro原创 2017-11-28 14:42:03 · 166 阅读 · 0 评论 -
模板方法模式
模板方法模式 定义:定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 优点:封装不变部分,扩展可变部分;提取公共部分代码,便于维护;行为由父类控制,子类实现。 缺点:抽象类定义了部分抽象方法,由子类实现,子类执行的结果影响了父类的结果,也就是子类对父类产生了影响。 通用模板1.抽象模板类public abstract class原创 2017-12-08 04:21:29 · 199 阅读 · 0 评论