中介者模式
模式动机 如果一个模块由多个对象构成,对象之间存在相互地引用,为了减少对象两两之间复杂的引用关系,使之成为一个松耦合的系统,我们需要使用中介者模式 模式定义 中介者模式(Mediator Pattern)定义:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。中介者模式又称为调停者模式,它是一种对象行为型模式。...
模式动机 如果一个模块由多个对象构成,对象之间存在相互地引用,为了减少对象两两之间复杂的引用关系,使之成为一个松耦合的系统,我们需要使用中介者模式 模式定义 中介者模式(Mediator Pattern)定义:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。中介者模式又称为调停者模式,它是一种对象行为型模式。...
堆的定义 堆是一种基于完全二叉树的数据结构,常用于实现优先队列。它分为两种类型:最大堆(父节点的值 ≥ 子节点)和 最小堆(父节点的值 ≤ 子节点)。 堆的特性 完全的二叉树结构 所有层除最后一层都是满的,最后一层节点从左到右填充 通过数组存储,父子节点下标关系 父节点下标 parent(i) = (i-1)/2...
1.使用场景 找到符合要求数组(字符串)的字数组(子串) 2.核心思想 滑动窗口可以归为快慢双指针,一快一慢两个指针前后相随,中间的部分就是窗口。这个算法的核心问题是什么时候增大窗口,什么时候缩小窗口,如何处理窗口中的数据以及在窗口滑动的哪个阶段更新结果 int left = 0, right = 0; while (right < nums.size()) { // 增...
模式动机 建立一种对象与对象之间的依赖关系,一个对象发生改变时将自动通知其他对象,其他对象将作出反应。发生改变的对象称为观察目标,而被通知的对象称为观察者,一个观察目标可以对应多个观察者,而且这些观察者之间没有相互联系,可以根据需要增加和删除观察者,使得系统更易于扩展。 模式定义 观察者模式(Observer Pattern): 定义对象间的一种一对多依赖关系,使得每当一个对象状态发生改变...
概述 软件的可维护性和可复用性 软件的复用和重用拥有众多优点,如提高软件的开发效率,提高软件质量,节约开发成本,恰当的复用还可以改善系统的可维护性 面向对象的设计复用的目标在于实现支持可维护性的复用 在面向对象的设计里面,可维护性复用都是以面向对象设计原则为基础的,这些设计原则首先都是复用的原则,遵循这些设计原则可以有效地提高系统的复用性...