设计模式
文章平均质量分 78
lingengy
这个作者很懒,什么都没留下…
展开
-
设计模式之访问者模式
文章目录介绍使用场景优缺点优点缺点原理与实现介绍在访问者模式(Visitor Pattern)中,我们使用了一个访问者类,它改变了元素类的执行算法。通过这种方式,元素的执行算法可以随着访问者改变而改变。属于行为型模式。根据模式,元素对象已接受访问者对象,这样访问者对象就可以处理元素对象上的操作。使用场景1、对象结构中对象对应的类很少改变,但经常需要在此对象结构上定义新的操作。2、需要对一个对象结构中的对象进行很多不同的并且不相关的操作,而需要避免让这些操作"污染"这些对象的类,也不希望在增加新操作原创 2022-01-30 06:23:25 · 916 阅读 · 0 评论 -
设计模式之迭代器模式
文章目录介绍原理迭代器的优势遍历时注意删除和添加新元素的影响介绍迭代器模式(Iterator Pattern)是 用于顺序访问集合对象的元素,不需要知道集合对象的底层表示,是一种行为型模式。本文就以Java中的ArrayList为例来讲解迭代器模式的应用。原理一个完整的迭代器模式一般会涉及容器和容器迭代器两部分内容。为了达到基于接口而非实现编程的目的,容器又包含容器接口、容器实现类,迭代器又包含迭代器接口、迭代器实现类。对于迭代器模式,我画了一张简单的类图,你可以看一看,先有个大致的印象。为了原创 2022-01-30 05:57:55 · 945 阅读 · 0 评论 -
单例模式
饿汉模式线程安全,比较常用,但容易产生垃圾,因为一开始就初始化。public class Singleton { private static Singleton instance = new Singleton(); private Singleton (){} public static Singleton getInstance() { r...原创 2019-11-05 04:52:02 · 177 阅读 · 0 评论 -
设计模式之桥接模式
一、定义将抽象部分与它的实现部分分离,使它们都可以独立地变化。实现系统可能有多角度分类,没一种分类都有可能变化,那么就把这种多角度分离出来让它们独立变化,减少它们之间的耦合。二、结构图三、实例...原创 2019-02-13 01:22:12 · 143 阅读 · 0 评论 -
状态模式
一、定义:当一个对象的内在状态改变时运行改变其行为,这个对象看起来是改变了其类。状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。当然,如果这个判断很简单,那就没必要用“状态模式”了。二、结构图三、状态模式的好处与用处好处:可以将与特定状态相关的行为局部化,并且将不同状态的行为分割开来。状...原创 2020-11-08 16:18:10 · 74 阅读 · 0 评论 -
命令模式
一、定义原创 2019-02-12 17:06:57 · 144 阅读 · 0 评论 -
一些简单的设计模式
一、适配器模式1、应用场景:使用者依赖的接口与提供者的接口不匹配时,就加一层适配,二不改两端的代码。2、结构图:二、外观(门面)模式1、应用场景:使用方要完成一个功能,需要调用提供方的多个接口、方法,调用过程复杂时,我们可以再提供一个高层接口(新的外观),将复杂的调用过程向使用方隐藏。是适配器模式的变种。说到底就是多了一个接口把复杂的调用过程封装了一下。2、结构图:...原创 2019-02-12 13:36:20 · 363 阅读 · 0 评论 -
观察者模式(发布-订阅模式)
一、定义观察者模式(发布-订阅模式):一种一对多的依赖关系,让多个广场这对象同时监听某一个主题对象。这个主题对象在状态发生变化是,会通知所有观察者对象,使他们能够自动更新自己。这是一种对象之间松耦合的方式。二、机构图三、使用场景和特点使用场景:当一个对象改变时需要同时改变其他多个对象,而且它不知道具体有多少对象有待改变,就应该考虑使用观察者模式。作用:观察者模式所做的工作其实就是在...原创 2019-02-12 13:26:36 · 204 阅读 · 0 评论 -
责任链模式
一、定义:使多个对象都有机会处理请求,从而避免请求的发送至和接受者之间的耦合关系。将这个对象连成一条链,并沿这条两传递该请求,一个处理完后,转给下一个。责任链上的处理类可以都对请求做处理,也可以根据需求条件只有一个或者部分类对请求处理。二、结构图好处:当客户提交一个请求时,请求是沿着链传递,每个责任类各自处理各自的逻辑,互不影响,而且可以随时添加或修改一个请求的结构,增强了给对象指派职责...原创 2019-01-29 15:05:13 · 383 阅读 · 0 评论 -
装饰者模式
一、定义:以装饰的方式,动态地将责任附加到对象上。当需要给一个对象添加一些额外的职责的时候就可以考虑用装饰者模式。下图是装饰者模式的结构图:1、ComponentComponent 是定义一个对象接口,可以给这个接口的子类对象动态地添加职责。public interface Component { void methodA(); void methodB();}2、Co...原创 2019-01-29 00:25:43 · 133 阅读 · 0 评论 -
策略模式
一、定义它定义了算法家族,分别封装起来,让它们直接可以互相替换,此模式让算法的比啊好,不会影响到使用算法的客户。二、结构图三、基本代码环境角色类:public class Context { //持有一个具体策略的对象 private Strategy strategy; /** * 构造函数,传入一个具体策略对象 * @param strategy原创 2017-09-03 14:56:56 · 275 阅读 · 0 评论 -
Java代理模式
一、Java代理模式代理是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个对象的访问。代理类负责为委托类预处理消息,过滤消息并转发消息,以及进行消息被委托类执行后的后续处理。代理模式结构图 为了保持行为的一致性,代理类和委托类通常会实现相同的接口,所以在访问者看来两者没有丝毫的区别。通过代理类这中间一层,能有效控制对委托类对象的直接访问,也可以很好地隐藏和保护委托类对象,同时也为实原创 2017-09-05 11:55:24 · 366 阅读 · 0 评论 -
简单工程模式
在开始说工厂模式之前先说说面向对象。面向对象有三大特性:封装、继承、多态。面向对象的好处1、面向对象的封装思想可以减低代码的耦合度,使程序更加灵活,容易修改,并且易于复用。编程应该尽可能的去避免重复,否则越大的系统,维护成本会越高。 2、为了 方便维护管理,应该把业务逻辑代码和功能代码分开,减低它们之间的耦合度,菜可以达到容易维护和扩展。简单工厂模式简单工厂模式 (Simple Factory)原创 2017-08-17 11:54:34 · 1166 阅读 · 1 评论