文章列表 | 月光中的污点

文章列表

标签: 设计模式

当前位置: 首页 / 标签 / 设计模式

Java 设计模式之观察者模式(十六)

本篇主题为行为型模式中的第四个模式–观察者模式。上篇 Java 设计模式主题为《Java 设计模式之迭代器模式(十五)》。 观察者模式是行为模式之一,定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 被观察者(Subject):当需要被观察的状态发生变化时,需要通知队列中所有观察者对象。Subject 需要维持(添加,删除,通知)一个观察者对象的队列列表。

Java 设计模式之迭代器模式(十五)

本篇主题为行为型模式中的第三个模式–迭代器模式。上篇 Java 设计模式主题为《Java 设计模式之命令模式(十四)》。 迭代器模式是行为模式之一,它把对容器中包含的内部对象的访问委让给外部类(此外部类是指非自身的类),使用 Iterator(遍历)按顺序进行遍历访问的设计模式。 迭代器接口(Iterator):该接口必须定义实现迭代功能的最小定义方法集。比如提供 hasNext() 和 next() 方法。

Java 设计模式之命令模式(十四)

本篇主题为行为型模式中的第二个模式–命令模式。上篇 Java 设计模式主题为《Java 设计模式之模板方法模式(十三)》。 命令模式将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。 Command:声明执行操作的接口。

Java 设计模式之模板方法模式(十三)

上篇 《Java 设计模式之代理模式(十二)》 为 Java 设计模式中结构型模式的最后一章,今天开始介绍 Java 设计模式中的行为型模式的第一种模式--模板方法模式。 模板方法( Template Method)模式是行为模式之一,它把具有特定步骤算法中的某些必要的处理委让给抽象方法,通过子类继承对抽象方法的不同实现改变整个算法的行为。 具有统一的操作步骤或操作过程。

Java 设计模式之代理模式(十二)

今天介绍结构型模式中的最后一个模式–代理模式。上篇 Java 设计模式主题为《Java 设计模式之享元模式(十一)》。 代理(Proxy)模式是结构型的设计模式之一,它可以为其他对象提供一种代理(Proxy)以控制对这个对象的访问。 所谓代理,是指具有与被代理的对象具有相同的接口的类,客户端必须通过代理与被代理的目标类交互,而代理一般在交互的过程中(交互前后),进行某些特别的处理。

Java 设计模式之享元模式(十一)

本篇主题为结构型模式中的第六个模式–享元模式。上篇 Java 设计模式主题为 《Java 设计模式之外观模式(十)》 。 享元(Flyweight)模式是构造型模式之一, 它通过与其他类似对象共享数据来减小内存占用。 抽象享元:所有具体享元类的父类,规定一些需要实现的公共接口,可接收外部状态。

Java 设计模式之外观模式(十)

本篇主题为结构型模式中的第五个模式–外观模式。上篇 Java 设计模式主题为 《Java 设计模式之组合模式(九)》 。 外观(Facade)模式又称门面模式,为一组具有类似功能的类群,比如类库,子系统等等,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 Facade:调用方定义简单的调用接口。

Java 设计模式之组合模式(九)

本篇主题为结构型模式中的第四个模式–组合模式。上篇 Java 设计模式主题为 《Java 设计模式之装饰模式(八)》 。 组合模式(Composite)是结构型的设计模式之一。通过递归手段来构造树形的对象结构以表示“部分-整体”的层次结构,并可以通过一个对象来访问整个对象树。 组合模式使得用户对单个对象和组合对象的使用具有一致性。

Java 设计模式之装饰模式(八)

本篇主题为结构型模式中的第三个模式–装饰模式。上篇 Java 设计模式主题为 《Java 设计模式之桥接模式(七)》 。 装饰(Decorator)模式又叫做包装模式,其功能是动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活,是继承关系的一个替换方案。 Component:定义一个对象接口,可以给这些对象动态地添加职责。

Java 设计模式之桥接模式(七)

本篇主题为结构型模式中的第二个模式--桥接模式。上篇 Java 设计模式主题为 《Java 设计模式之适配器模式(六)》 。 桥接模式,是结构型的设计模式之一。桥接模式基于类的最小设计原则,通过使用封装,聚合以及继承等行为来让不同的类承担不同的责任。它的主要特点是把抽象(abstraction)与行为实现(implementation)分离开来,从而可以保持各部分的独立性以及应对它们的功能扩展。 处理多层继承结构,多维度变化的场景。将各个维度设计成独立的继承结构,使得各个维度可以独立的扩展。