一、适配器模式的概念 适配器模式:把一个类的接口转换成用户希望的另外一个接口。 应用:主要用于维护旧的代码 二、UML图 电脑只能够读USB接口,但是我想要读CD怎么办,只能买一个实现USB接口的适配器了。 三、代码 USB.java public interface USB { void read Read More
一、观察者模式的概念 观察者模式:定义了一对多的依赖,当被观察者改变时,所有的观察者都会收到改变的通知。 应用场景:Java Swing 注意:被观察者可以充当观察者,观察者也可以充当被观察者,也就是说,观察者模式是可以嵌套使用的。 观察者的实现方式有”推“和“拉”两种,使用推的方式虽然方便但是可能 Read More
这里也只说一下简单的原理。 Model:模型实现处理数据的切逻辑。 View:视图呈现模型的数据和状态。 Control:解读视图对模型的操作。 视图和模型之间使用观察者模式,只要模型的状态改变视图立刻呈现出来,视图和控制器使用策略模式控制器解读视图对模型的操作并通知模型做出相应动作。 Read More
一、代理模式概念 代理模式:当实际对象由于某些原因不能够直接访问,就让代表对象控制对它的访问。 远程代理调用流程:客户端有一个称为桩的辅助对象,服务端有一个称为骨架的辅助对象,客户端不知道要调用的对象在远方,调用辅助对象就像调用实际对象一样。实际上,客户端发送调用申请给桩,桩与骨架通信,骨架请求调用 Read More
一、状态模式概念 状态模式:将状态封装成独立的类,将状态机中的行为委托给当前状态实现。 二、UML图 我们可以看到状态和状态机实现相同的操作,状态被封装成类,状态机将操作委托给当前状态,当前状态可以通过setState()来改变状态机的当前状态来实现状态转换。 三、代码 State.java pub Read More
一、组合模式概念 组合模式:可以将对象组合成树状结构。如,菜单与子菜单的关系。 UML图 我们可以看到这是一个复合的结构,也节点不一定支持从基类继承的所有方法,复合节点也不一定都支持从基类继承而来的全部方法。 Read More
外观模式:简单得封装了子系统的一组接口,简化了子系统的接口,也实现了解耦。 空对象模式:当需要一个NUll值时,返回一个没有意义的对象表示不作任何动作。 Read More
一、策略模式的概念 策略设计模式:定义一组可以互相替换的算法或行为,在运行时动态的替换。 特点:比继承更加优雅的一种代码复用的方式。 二、UML图 定义了一个国王,国王可以随时通过setWeapon()方法更换武器ABC,将fight()方法的实现委托给w.useWeapon()。 三、代码 Cha Read More
设计模式:总结前人的设计经验和方法,帮助我们写出低耦合易于维护的代码的。 设计模式的原则 开闭原则:对修改关闭,对扩展开放 依赖倒转原则:针对接口和抽象编程 合成复用原则:多用组合少用继承 接口隔离原则:松耦合 最少知道原则:实体之间尽量少的相互作用 里式代换原则:基类可以出现的地方子类也可以出现。 Read More
这类题是最简单的了都是一个套路,不像动态规划一类题一个套路,没做过就是不会也极难想出来。 一、BFS 解决的问题:用来初始点解决到指定点的最短路径问题,因为图的每一层上的点到初始点的距离相同。(注意是无权图) 在程序实现 BFS 时需要考虑以下问题: 队列:用来存储每一轮遍历得到的节点; 标记:对于 Read More