结构型:代理模式

结构型:代理模式

bingliaolong 4年前 6 0

简述 在某些情况下,一个客户不想或者不能直接引用一个对 象,此时可以通过一个称之为“代理”的第三者来实现 间接引用。代理对象可以在客户端和目标对象之间起到 中介的作用,并且可以通过代理对象去掉客户不能看到 的内容和服务或者添加客户需要的额外服务。 定义 给某一个对象提供一个代理,...

创建型:建造者模式

创建型:建造者模式

bingliaolong 4年前 7 0

概述 无论是在现实世界中还是在软件系统中,都存在一些复杂的对象,它们拥有多个组成部分,如汽车,它包括车轮、方向盘、发送机等各种部件。而对于大多数用户而言,无须知道这些部件的装配细节,也几乎不会使用单独某个部件,而是使用一辆完整的汽车,可以通过建造者模式对其进行设计与描述,建造者模...

结构型:组合模式

结构型:组合模式

bingliaolong 4年前 7 0

概述 一个组织有很多子组织,而无论子组织是单独一个部门或是一个分组织。该组织都希望把它们当成一样的子组织来管理。 比如公司总部有多个部分,该公司还有一些分公司,当总部有通知需要下达时,将分公司视为部门一样,一起通知。而分公司拿到通知之后,再下达该通知到自己下属的各个部门。 定义 ...

行为型:命令模式

行为型:命令模式

bingliaolong 4年前 2 0

概述 在软件设计中,我们经常需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个,我们只需在程序运行时指定具体的请求接收者即可,此时,可以使用命令模式来进行设计,使得请求发送者与请求接收者消除彼此之间的耦合,让对象之间的调用关系更加灵活。 命令模式可以...

结构型:适配器模式

结构型:适配器模式

bingliaolong 4年前 8 0

概述 通常情况下,客户端可以通过目标类的接口访问它所提供的服务。有时,现有的类可以满足客户类的功能需要,但是它所提供的接口不一定是客户类所期望的,这可能是因为现有类中方法名与目标类中定义的方法名不一致等原因所导致的。 在这种情况下,现有的接口需要转化为客户类期望的接口,这样保证了...

结构型:装饰器模式

结构型:装饰器模式

bingliaolong 4年前 10 0

概述 一般有两种方式可以实现给一个类或对象增加行为: 继承机制 关联机制 继承机制 使用继承机制是给现有类添加功能的一种有效途径,通过继承一个现有类可以使得子类在拥有自身方法的同时还拥有父类的方法。但是这种方法是静态的,用户不能控制增加行为的方式和时机。 关联机制 即将一个类的对...

行为型:中介者模式

行为型:中介者模式

bingliaolong 4年前 5 0

概述 当用户对象之间存在很强的关联性时,会有以下问题: 系统结构负责 对象之间存在大量的相互关联和调用,若有一个对象发生变化,则需要跟踪和该对象关联的其他所有对象,并进行适当处理。 对象的可重用性差 由于一个对象和其他对象具有很强的关联,若没有其他对象的支持,一个对象很难被另一个...

行为型:迭代器模式

行为型:迭代器模式

bingliaolong 4年前 6 0

概述 对于集合对象而言,肯定会涉及到对集合的添加和删除操作,同时也肯定支持遍历集合元素的操作,我们此时可以把遍历操作放在集合对象中,但这样的话,集合对象既承担太多的责任了。 面向对象设计原则中有一条就是单一职责原则,所有我们要尽可能地分离这些职责,用不同的类取承担不同的责任,迭代...

行为型:策略模式

行为型:策略模式

bingliaolong 4年前 10 0

概述 完成一项任务或事情,往往会有多种方法,而每一个方法可以称之为一个策略。而策略的选择,往往需要根据实际的环境或者条件的不同而做出不同的选择。 定义 定义一系列算法,将每一个算法封装起来,并让它们可以相互代替。 策略模式让算法独立于使用它的客户而变化。 角色 Context: ...

动态规划_最长公共子序列

动态规划_最长公共子序列

bingliaolong 4年前 0 0

简述 最长公共子序列算法思想,令 X=< x1,x2,...xm > Y=<y1,y2,...yn> 为两个序列, Z=<z1,z2,...zk>为X和Y的某一个最长公共子序列: 如果 xm=yn,则zk=xm=yn,且Z(k-1)是X(m-1...

扫一扫二维码分享