
设计模式
文章平均质量分 90
小幸运安然
这个作者很懒,什么都没留下…
展开
-
设计模式:(七)解释器、状态、策略、职责链模式
一、解释器模式1、概述解释器(Interpreter)模式:是指给定一个语言(表达式),定义它的文法的一种表示,并定义一个解释器,使用该解释器来解释语言中的句子(表达式),其中:“文法”指语言的语法规则,而“句子”是语言集中的元素。比如正则表达式。2、解释器模式的主要角色抽象表达式(Abstract Expression):声明一个抽象的解释操作,主要包含解释方法 interpret(),这个方法为抽象语法树中所有的节点所 共享。终结符表达式(Terminal Expression):是抽象原创 2021-04-11 21:32:22 · 445 阅读 · 1 评论 -
设计模式:(六)迭代器、观察者、中介者、备忘录模式
一、迭代器模式1、概述迭代器(Iterator)模式:提供一种遍历集合元素的统一接口,用一致的方法遍历集合元素, 不需要知道集合对象的底层表示(即:不暴露其内部的结构)。迭代器模式是一种对象行为型模式。2、迭代器模式的主要角色抽象迭代器(Iterator):定义访问和遍历聚合元素的接口,通常包含hasNext()、next()、remove()等方法。具体迭代器(Concretelterator):实现抽象迭代器接口中所定义的方法,完成对聚合对象的遍历,记录遍历的当前位置。抽象聚合(Agg原创 2021-04-08 22:27:23 · 316 阅读 · 1 评论 -
设计模式:(五)代理、模板方法、命令、访问者模式
一、代理模式1、概述代理模式(Proxy)定义:为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象,这样做的好处是可以在目标对象实现的基础上,增加额外的功能操作,即扩展目标对象的功能。代理模式的不同形式:静态代理动态代理(JDK代理、接口代理)CgLib代理(可以在内存动态的创建对象,而不需要实现接口,是属于动态代理的范畴)2、代理模式的主要角色抽象主题(Subject)类:通过接口或抽象类声明真实主题和代理对象实现的业务方法。真实主题(Rea原创 2021-04-05 12:37:10 · 459 阅读 · 1 评论 -
设计模式:(四)装饰器、组合、外观、享元模式
一、装饰器模式1、概述定义:装饰器(Decorator)模式指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式,它属于对象结构型模式。比继承更有弹性,体现了开闭原则。2、装饰器模式的主要角色抽象构件(Component):是一个接口或者抽象类,是定义我们最核心的对象,也可以说是最原始的对象,比如饮料。具体构件(ConcreteComponent):实现抽象构件,可以单独用,也可通过装饰角色将其进行装饰,比如咖啡。抽象装饰(Decorator):一般是一个抽原创 2021-03-22 22:41:34 · 939 阅读 · 1 评论 -
设计模式:(三)原型、建造者、适配器、桥接模式
用原型实例指定了要创建对象的种类,并且通过拷贝这些原型,创建新的对象。原型模式是一种创建型设计模式,允许一个对象再创建另外一个可定制的对象, 无需知道如何创建的细节。原创 2021-03-02 08:59:14 · 596 阅读 · 0 评论 -
设计模式:(二)单例与工厂模式
一、单例设计模式(Singleton)1、概述类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。定义:指一个类只有一个实例,且该类能自行创建这个实例的一种模式。举例:Windows 中只能打开一个任务管理器,这样可以避免因打开多个任务管理器窗口而造成内存资源的浪费,或出现各个窗口显示内容的不一致等错误。还有操作系统中的文件系统、多线程中的线程池、显卡的驱动程序对象、打印机的后台处理服务、应用程序的日志对象、原创 2021-02-28 12:19:09 · 1760 阅读 · 4 评论 -
设计模式:(一)设计模式概述与原则
设计模式(design pattern)换句话说,所有引用基类的地方必须能透明地使用其子类的对象子类可以扩展父类的功能,但不能改变父类原有的功能。对自己依赖的类知道的越少越好只与直接的朋友通信。开闭原则(Open Closed Principle)5大原则原则的最终目的:降低对象之间的耦合,增加程序的可复用性、可扩展性和可维护性类图。原创 2021-02-25 14:29:58 · 412 阅读 · 0 评论