
设计模式
设计模式
空白__@
无
展开
-
设计模式--访问者模式
在面向对象系统的开发和设计过程,经常会遇到一种情况就是需求变更。访问者模式提供了一种解决方法:将更新封装到一个子类中,并有待更改类提供一个接受接口,则可达到效果。原创 2020-06-12 16:36:42 · 385 阅读 · 0 评论 -
设计模式--享元模式
当客户需要的网站结构相似度很高,而且都不是访问量很高的网站。那么,就可以通过多个网站共用一套代码的方法,快速创建网站,通过不同ip地址区分,可以让维护和扩展更加容易。原创 2020-06-12 15:48:49 · 376 阅读 · 0 评论 -
设计模式--命令模式
命令模式(Command),将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。原创 2020-06-05 16:59:02 · 442 阅读 · 0 评论 -
设计模式--桥接模式
最初的手机软件,并不是每个手机都通用的,而是每个型号或相同几个型号的手机共用一套软件。如果是这样开发的话,时间和成本的消耗都很大。桥接模式的出现,使诸如手机软件等趋于统一,主要还是手机软件的兼容性增强了,让软件适用更多的手机。一、模式初识1.什么是桥接模式(Bridge)? 桥接模式,将抽象部分与它的实现部分分离,使它们都可以独立的变化。2.什么是抽象与它的实现分离? 这并不是说,让抽象类与其派生类分离,因为这没有任何意义。实现是指抽象类和它的派生类都用来实现自己的对象。...原创 2020-05-29 16:47:40 · 280 阅读 · 0 评论 -
设计模式--单例模式
单例模式,保证一个类仅有一个实例,并提供一个访问它的全局访问点。原创 2020-05-29 15:48:50 · 214 阅读 · 0 评论 -
设计模式--组合模式
设计模式--组合模式 树状结构在日常生活中十分常见。它有一个根节点、若干个树枝节点和若干个叶子节点。组合模式也与树状结构有些许联系。一、模式初识 1.什么是组合模式(Composite)? 组合模式(Composite)有时又叫部分—整体模式。组合模式将对象组织到数结构中,可以用来描述整体与部分的关系。组合模式可以使客户端将单纯元素与复合元素同等看待。 2.组合模式是怎样的结构? 直接上UML图:①抽象构建(Component)角色:这是一个抽象角色,它给参与组合...原创 2020-05-21 18:15:38 · 294 阅读 · 0 评论 -
设计模式--备忘录模式
设计模式--备忘录模式 世界上没有后悔药,但是我们在进行软件设计时要给用户后悔的选择,我们对一些日常性或者关键性的操作需要为用户提供诸如撤销的操作。其实这个操作就是由备忘录(Memento)模式提供的。目录一、模式初识二、模式深入三、模式实例一、模式初识 1.什么是备忘录(Memento)模式? 备忘录(Memento)模式的关键要在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以利用保存的状态实施回复操作。 2.备忘录(M...原创 2020-05-21 17:20:39 · 1196 阅读 · 1 评论 -
面向对象的设计原则(设计模式中的7板斧)
设计模式中总共有23中基本的设计模式,让我们了解如何去“封装变化”,“对象间松散耦合”,“针对接口编程”,从而去设计出易维护、易扩展、易复用、灵活性好的程序。不过,也有7种规范我们行为的原则:单一职责原则 开放封闭原则 里氏代换原则 依赖倒转原则 迪米特法则 合成聚合原则 接口隔离原则一、单一职责原则1.单一职责原则(SRP):就一个类而言,应该仅有一个引起它变化的原因。2.如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他..原创 2020-05-14 21:11:41 · 445 阅读 · 0 评论 -
设计模式--适配器模式
设计模式–适配器模式1.模式定义适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配而无法在一起工作的两个类能够在一起工作。2.模式分类:分为类的适配器模式和对象的适配器模式。3.模式角色(1).目标角色(target):这是客户所期待的接口。目标可以使具体的或抽象的类。(2).源角色(adaptee):需要适配的类。(3).适配器角色(adapter):通过...原创 2020-05-08 16:36:52 · 250 阅读 · 0 评论 -
设计模式--状态模式
设计模式--状态模式1.状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的状况。把状态的逻辑判断转移到表示不同状态的一系列类中,可以把复杂的逻辑简化。2.在状态模式中,当一个对象的内在状态发生改变时允许改变其行为,这个对象看起来像是改变了其类。3.状态模式将状态逻辑和动作实现进行分离。4.状态模式的优缺点 优点:(1).将与特定状态相关的行为局部化,并且将...原创 2020-05-08 11:52:24 · 234 阅读 · 0 评论 -
设计模式--抽象工厂模式
设计模式--抽象工厂模式1.抽象工厂模式是所有形态的工厂模式中最具抽象和最具一般性的形态。2.产品族:位于不同产品等级结构,功能相关联的产品组成的家族。(1).每个工厂负责一个产品族的创建。(2).抽象工厂模式以一种倾斜的方式支持产品族的创建,但不支持产品等级结构的扩展。3.使用情景(1).希望一个系统不应当依赖于产品类实例如何被创建、组合和表达的细节时。(2).一个系...原创 2020-05-04 15:53:56 · 149 阅读 · 0 评论 -
设计模式--外观模式
设计模式--外观模式1.外部与一个子系统的通讯必须通过一个统一的外观对象进行。2.外观模式的外观将客户端与子系统的内部复杂性分开。3.外观模式没有一般化的类图可以描述。4.整个系统可以有数个外观对象,外观类是一个单例类。5.应用场景:当客户程序与抽象类的实现部分之间存在很大的依赖性。在层次化结构中,可以使用外观模式定义系统中的入口点,希望包装或隐匿原有系统。6.优缺点: 优点:(...原创 2020-04-25 17:32:22 · 169 阅读 · 0 评论 -
设计模式--模板方法模式
设计模式--模板方法模式1.定义:定义一个操作中的算法的骨架,而将这些步骤延迟到子类。2.模板方法需要开发抽象类和具体子类的设计师之间的协作。3.应用场景:完成在某一细节层次一致的一个过程或一系列的步骤,但其个别步骤在更详细的层次上的实现可能不同的时候。4.优缺点: 优点:实现代码复用。 缺点:算法骨架不容易升级。例题(java语言):采用模板方法模式实现数据库访问的例子...原创 2020-04-25 17:31:13 · 175 阅读 · 0 评论 -
设计模式--原型模式
设计模式--原型模式1.分为浅复制和深复制 浅复制:被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍指向原来的对象。 深复制:把引用对象的变量指向复制过的新对象,而不是原来的被引用的对象。2.本质:克隆生成对象3.原型模式在功能上可以替代工厂模式4.优缺点 优点:(1).允许动态的增加或减少产品类(2).提供了简化的创建结构 缺点:(1).每...原创 2020-04-24 17:26:17 · 179 阅读 · 0 评论 -
设计模式--观察者模式
设计模式--观察者模式1.抽象主题角色、抽象观察者角色、具体主题角色、具体观察者角色2.认识观察者模式(1).目标和观察者之间的关系--典型的一对多关系。(2).单向依赖--观察者依赖于目标。(3).触发同志的时机--完成了状态维护后触发。(4).相互观察--A、B观察C,B、C观察A(应该写两套观察模式)+注意死循环。(5).绝对不要依赖于通知的顺序,多个观察者之间的功能是平行的,...原创 2020-04-24 16:23:54 · 234 阅读 · 0 评论 -
设计模式--工厂方法模式
设计模式--工厂方法模式1.核心的工厂类不在负责所有产品的创建,而是将具体创建工作交给了子类去做。2.分为抽象工厂角色和具体工厂角色。3.工厂方法类的核心是一个抽象工厂类,而简单工厂模式把核心放在一个具体类上。4.本质:延迟到子类实现。5.优缺点: 优点:当添加新对象时,不需要修改客户端。 缺点:具体产品对象与工厂方法的耦合性。6.应用场景:(1).一个类需创建某个接口对象...原创 2020-04-22 17:25:34 · 141 阅读 · 0 评论 -
设计模式--代理模式
设计模式--代理模式1.隐藏真实主题。2.代理模式本质:控制对象访问。3.应用场景:一个客户不想或者不能够直接引用一个目标,而代理对象可以在客户端和目标对象之间起到中介作用。4.远程代理、虚拟代理、安全代理等。例题1:订单系统 一旦订单被创建,只有订单的创建人才可以修改订单中的数据,其他人不能修改 三个属性:产品名称、订购数量、订购人package a01;publ...原创 2020-04-22 17:21:18 · 227 阅读 · 0 评论 -
设计模式--装饰模式
设计模式--装饰模式1.装饰模式类似于递归。2.通过包装实现功能。3.以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。4.本质是动态组合--动态是手段,组合是目的。5.装饰模式的意图就是动态的给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更加灵活。6.装饰模式耍了那么多绕,其实就用了两招,继承和多态。7.装饰模式的优缺点 优点:扩展对象的功能,...原创 2020-04-22 17:19:17 · 156 阅读 · 0 评论 -
设计模式--策略模式
设计模式--策略模式1.策略类只需实现新的策略类,并在客户端登记即可。2.本质:分离算法,选择实现3.模式:(1).把具体的算法从具体业务处理中独立。(2).对个if-else出现考虑使用。(3).策略算法是形同行为的实现。(4).客户端/上下文来选择具体的策略算法。4.策略模式的优缺点: 优点: (1).避免让客户端涉及到不必要接触到的复杂的和只与算法相关的数据。 ...原创 2020-04-21 20:05:31 · 141 阅读 · 0 评论 -
设计模式--简单工厂模式
设计模式--简单工厂模式简单工厂模式1.简单工厂使用静态方法2.简单工厂的本质是选择实现3.简单工厂的优缺点 优点: (1).工厂类含有必要的判断逻辑,可以决定在什么时候创建哪一个产品类的实例,客户端可以免除直接创建对象的责任,而仅仅“消费”产品。 缺点: (1).当产品有复杂的多层等级结构时,工厂类只有自己,以不变应万变,就是缺点。 (2).同时系统扩展困难,一旦添...原创 2020-04-21 20:00:17 · 138 阅读 · 0 评论