
设计模式
A__17
这个作者很懒,什么都没留下…
展开
-
设计模式 一一一 单例模式
单例模式(Singleton):保证一个类仅有一个实例,并提供一个访问它的全局访问点。 特点: 1)单例类只能有一个实例 2)单例类的唯一实例必须由自己创建 3)单例类必须给所有其它对象提供自己唯一的实例 应用:系统要求一个类只有一个实例时使用。 单例模式的实现: 1)Singleton(饿汉模式): public class Singleton { priva原创 2015-10-31 20:20:08 · 660 阅读 · 0 评论 -
设计模式 一一一 工厂模式
工厂模式: 概念: 工厂模式负责将大量有共同接口的类实例化。 相关角色: 抽象工厂:创建对象的具体工厂类必须实现这个接口 具体工厂:实现了抽象工厂接口的具体工厂类 抽象产品:创建的具体对象的超类型(父抽象类或父接口) 具体产品:创建的具体对象。 1)简单工厂模式(静态工厂方法模式): 概念:新建一个工厂类,该工厂类有一个静态的工厂方法,根据这个静态...原创 2015-11-02 18:36:12 · 669 阅读 · 0 评论 -
设计模式 一一一 策略模式
策略模式(Strategy):对于一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以互相替换。 目的:使得不同的算法在不影响到客户端的情况下进行替换。 优点:提供了管理一个算法族的解决方案,可以避免使用多重条件语句来判断具体采用哪个算法。 缺点:客户端必须知道所有的策略类,并自行决定使用哪一个策略类;策略模式会造成很多(策略)类。 角色: 环境(Context):持有一原创 2015-11-06 18:16:34 · 586 阅读 · 0 评论 -
设计模式 一一一 观察者模式
观察者模式(Observer) 概念: 又叫做发布-订阅(publish-subscribe)模式。 多个观察者同时监听某一个对象,当这个对象发生变化时,这个对象会通知所有感兴趣的观察者,以便于他们能够做出相应的处理。 jdk中的观察者模式: Observer 观察者 说明:观察(监听)着感兴趣的对象,通过将自身注册到感兴趣的对象中,并且由感兴趣的对象发通知来实现观察(监听...原创 2020-03-08 02:30:09 · 206 阅读 · 0 评论 -
设计模式 一一一 模板方法模式
模板方法: 目的:让模板的实现类来实现模板中固定逻辑(骨架)的具体步骤,从而达到一个固定逻辑可以对应n个具体的实现。 角色: 模板类 提供模板方法。 模板方法 指定逻辑的骨架,骨架由多个基本方法构成。 基本方法 骨架的一部分。 模板的具体实现类 继承模板类,对模板类中的基本方法进行自定义。 基本方法的具体实现 自定义基本方法的具体实现。 ...原创 2020-03-08 00:06:02 · 188 阅读 · 0 评论 -
设计模式 一一一 适配器模式
适配器模式: 目的:适配器暴露符合外界规范的接口,该接口的具体实现通过调用被适配对象的相应方法来完成。 应用:系统需要使用现有的一个类,但是这个类的接口不符合系统的需要,此时就需要新增一个适配器来解决这个问题。 角色: 目标接口:符合外界规范的接口 源对象(被适配的对象):提供相应的功能,但是接口的规范不符合外界的要求 适配器:暴露符合外界规范的接口,通过...原创 2020-03-07 11:22:53 · 194 阅读 · 0 评论 -
利用间接通信的思想来改善系统的设计 -- 装饰模式 vs 适配器模式 vs 代理模式
利用间接通信的思想来改善系统的设计: 装饰模式: 目的:对对象的相应功能进行增强。 应用:对提供基础功能的类进行个性化增强。 说明:对象可能被装饰多次,最后的效果就是对象被包装了多层,故装饰器也包装器Wrapper。 eg: DecoratorBase封装了targetObj对象, DecoratorOne封装了DecoratorBase对象, DecoratorOneFo...原创 2020-03-06 23:19:14 · 204 阅读 · 0 评论 -
设计模式中的开闭原则
开闭原则(OCP:Open-Closed Principle): 概念:对扩展是开放的,对修改是关闭的。开:对扩展是开放的,即支持扩展新功能;闭:对修改是关闭的,即不允许对现有的源代码进行修改。 说明: 1>开闭原则是面向对象设计中最重要的原则之一。 2>在设计系统的一个模块时,我们应该使该模块满足开闭原则,即:我们设计出的模块可以在不修改源代码的情况下进行扩展...原创 2013-12-06 10:33:17 · 1129 阅读 · 0 评论 -
代理模式--静态代理VS动态代理
代理模式: 作用:为目标对象提供一个代理对象以控制对目标对象的访问。 说明:代理对象存在的价值:主要用于拦截对真实业务对象(目标对象)的访问 应用:拦截器等 静态代理: 代理类和目标类必须实现相同的接口或者是继承相同父类。 静态代理模式的缺点: 1,如果一个系统中有100个目标(被代理)对象,则要创建100个代理对象 2,如果一个目标对象中有很多方法需要事务,则代理对象的很多方...原创 2015-09-24 14:48:15 · 826 阅读 · 0 评论 -
设计模式 一一一 装饰模式
装饰模式Decorator(包装器Wrapper):能够动态地为一个对象添加一些额外的行为职责 应用场景: 需要扩展一个类的功能,即:动态地给一个对象增加功能,这些功能也可以动态地撤销 两大要素: 1,被改写的类封装于装饰实现类或者其子类的内部,从而形成对象之间的引用关系。 2,装饰实现类同样实现了原始接口(原始接口即:被改写类实现的接口) 装饰模式与继承相比的优点:原创 2015-11-02 22:12:53 · 567 阅读 · 0 评论