首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
面向对象设计模式纵横谈:Adapter 适配器模式(笔记记录)
】的更多相关文章
面向对象设计模式纵横谈:Singelton单件模式(笔记记录)
李建忠老师讲的<面向对象设计模式纵横谈>,早就看过了,现在有了时间重新整理一下,以前的博客[赛迪网]没有了,现在搬到博客园,重新过一遍,也便于以后浏览. 设计模式从不同的角度分类会得到不同的结果.设计模式可以从[目的]和[范围]两个角度来看看. 模式分类 从目的来看[这个分来是广泛使用的]: -创建型(Creational)模式:负责对象的创建 -结构型(Structural)模式:处理类与对象间的组合关系 -行为型(Behavioral)模式:类与对象交互中的职责分配的问题 从范围来看…
C#面向对象设计模式纵横谈——1.面向对象设计模式与原则
一:设计模式简介 每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心. ---- Christopher Alexander 软件设计领域设计模式: 设计模式描述了软件设计过程中某一类常见问题的解决方案. 面向对象的设计模式: 面向对象的设计模式描述了面向对象设计过程中,特定场景下,类与相互通信的对象之间常见的组织关系. 二: GOF 23种设计模式 历史性著作 <设计模式 : 可复用面向对象软件的基础>一书中描述了23种经典面向对象设计模式,创立了模式在软件设计中的…
面向对象设计模式纵横谈:Adapter 适配器模式(笔记记录)
适配(转换)的概念无处不在 适配,即在不改变原有实现的基础上,将原先不兼容的接口转换为兼容的接口.生活中适配转换的例子太多了,也是设计模式里面比较容易理解的一个模式. 动机(Motivation) 在软件系统中,由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用,但是新环境要求的接口是这些现存对象所不满足的. 如何应对这种“迁移的变化”?如何既能利用现有对象的良好实现,同时又能满足新的应用环境所要求的接口? 意图(Intent) 将一个类的接口转换成客户希望的另一个接口.Adap…
面向对象设计模式纵横谈:Bridge 桥接模式(笔记记录)
桥接模式是一个比较难理解的设计模式,设计和分析的时候也不容易把握,咱们听听“李建忠”老师是怎么来讲的.我们还是从演变的角度来说问题,一步一步的来把问题说清楚.先谈谈“抽象”和“实现”的关系. 抽象与实现 抽象不应该依赖于实现细节,实现细节应该依赖于抽象.这个东西很容易理解,抽象的东西是从众多的实例里面提取出来的精华,最原始,最稳定的东西,枝枝叶叶都已经去掉了. 就像建房子一样,我们一定要把地基打结实,如果地基天天改,上面的房子也很难建的起来,就算建起来也要拆了重新来建. 再者说,如果抽象B由于固…
面向对象设计模式纵横谈:Abstract Factory 抽象工厂模式(笔记记录)
今天是设计模式的第二讲,抽象工厂的设计模式,我们还是延续老办法,一步一步的.演变的来讲,先来看看一个对象创建的问题. 1.如何创建一个对象 常规的对象创建方法: 这样的创建对象没有任何问题,也可以很好的使用.但是如果有需求的变化,比如,如果我们换了一种道路呢,这时候就出现了问题. new的问题: -实现依赖,不能应对"具体实例化类型"的变化,Road是具体类型,所有使用到Road的地方都需要变化.如果经常变化,怎么解决具体类型的变化呢? 解决思路: -封装变化点--哪里变化,…
面向对象设计模式纵横谈:Factory Method 工厂方法模式(笔记记录)
从耦合关系谈起 耦合关系直接决定着软件面对变化时的行为 -模块与模块之间的紧耦合使得软件面对变化时,相关模块都要随之更改 -模块与模块之间的松耦合使得软件面对变化时,一些模块更容易被替换或者更改,但其他模块保持不变 抽象部分变化慢,细节(具体)部分变化快:高层部分变化慢,底层部分变化快. 当我们对于系统的认识无法梳理出上面的图时,最好不要一开始就用设计模式,设计模式其实是一个演绎的过程.当我们对软件认识不断深化时,慢慢就会知道哪些是主要的,哪些是次要的,就能梳理出一个抽象和具体的层次,再考虑用哪…
面向对象设计模式纵横谈:Prototype 原型模式(笔记记录)
有一段时间没写东西了,今天继续把没写完的设计模式写完,今天这堂课是创建型设计模式的最后一堂课,原型设计模式,它同样也是解决了对象在创建的过程中的解耦合的情况,面对变化使代码更稳定,更准确的说是使创建对象的主业务逻辑更稳定.好了,我们继续.我们县讨论一下依赖关系. 依赖关系的倒置 抽象不应该依赖于实现细节,实现细节应该依赖于抽象. -抽象A直接依赖于实现细节b,实现细节b就类似我要吃米饭,上午可能要吃米饭,下午就可能要吃炸酱面,每个人习惯不同,这个是经常变化的.对于软件设计来说,我们可…
面向对象设计模式纵横谈:Builder 生成器模式(笔记记录)
Builder模式的缘起 假设创建游戏中的一个房屋House设施,该房屋的构建由几个部分组成,且各个部分要富于变化. 如果使用最直观的设计方法,每一个房屋部分的变化,都将导致房屋构建的重新修正…… 动机(Motivation) 在软件系统中,有时候面临着“一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成:由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法却相对稳定. 如何应对这种变化?如何提供一种“封装机制”来隔离出“复杂对象的各个部分”的变…
设计模式(6)--Adapter(适配器模式)--结构型
1.模式定义: 适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作. 2.模式特点: Adapter模式使原本因接口不匹配(或者不兼容)而无法在一起工作的两个类能够在一起工作.又称为转换器模式.变压器模式.包装(Wrapper)器模式(把已有的一些类包装起来,使之能有满足需要的接口). (1) 适配器对象实现原有接口 (2)适配器对象组合一个实现新接口的对象(这个对象也可以不实现一个接口,只是一个单纯的对象) (3)对适配器原有…
C#面向对象设计模式纵横谈——6.Prototype 原型模式(创建型模式)
动机(Motivation) 在软件系统中,经常面临着“某些结构复杂的对象”的创建工作.由于需求的变化,这些对象经常面临着剧烈的变化,但他们却拥有比较稳定一致的接口. 如何应对这种变化?如何向“客户程序(使用这些对象的)”隔离出“这些易变对象”,从而使得“依赖这些易变对象的客户程序”不随着需求的改变而改变. 意图(Intent) 使用原型实例指定创建对象的种类,然后通过拷贝这些原型来创建新的对象. ----<设计模式> GOF 结构(Structure)…