设计模式
llhswwha
这个作者很懒,什么都没留下…
展开
-
设计模式学习笔记(1)
针对接口编程,而不是针对实现编程优先使用对象组合,而不是类继承分装变化点使用重构得到模式不要把设计模式当成技巧单一职责原则 - 一个类应该仅有一个引起它变化的原因。 File FileInfo开发封闭原则 - 类模块应该是可扩展的,但不可修改的(对扩展开放,对更改封闭) 为什么不可修改? 原来的类有错误呢?有不完整的地方呢? 命名是个问题,没有现实世界的对照物的...原创 2013-07-21 20:23:50 · 422 阅读 · 0 评论 -
设计模式学习笔记(2) Singleton模式
单件模式 跟IOM他们的“单件库”有什么区别?虽然把WaitForm实现为Singleton模式了,但实际编写中难点在其他地方核心是“如何控制用户使用new对一个类的实例构造器的任意调用”.net 框架里很多地方都实现了与Singleto类似的扩展Type 就是一个Singleton对象HttpContext.Current想到一点,有没有办法获取当前创建的所有没有类的实例对象。在构造器中记录起来...原创 2013-08-03 14:58:29 · 497 阅读 · 0 评论 -
设计模式学习笔记(6) Prototype 原型(创建型模式)
依赖关系的倒置抽象不应该依赖于实现细节,实现细节应依赖于抽象静态 动态 转换依赖关系,两种都依赖于抽象。抽象变化的频率慢,细节变化的频率快。动机在软件系统中,经常面临着“某些结构复杂的对象”的创建工作;由于需求的变化,这些对象经常面临着剧烈的变化,但是他们却拥有比较稳定一致的接口如何应对这种变化?如何向“客户程序”隔离出“这些易变对象”,从而使得“依赖这些易变对象的客户程序"不随需求改变而改变。其...原创 2013-08-05 20:52:37 · 598 阅读 · 0 评论 -
设计模式学习笔记(7) Adapter适配器(结构型模式)
结构型模式:类与对象组合的关系多个类组合起来完成某些事情,不同的方案创建型模式:对象的创建,松耦合的创建方案松耦合:需求变化时,现有结构实现开闭方式。适配(转换)的概念无处不在...... 适配,即在不改变原有实现的基础上,将原先不兼容的接口转换为兼容的接口。动机 在软件系统中,由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用,但是新环境要求的接口是这些现象所不...原创 2013-08-08 21:06:00 · 637 阅读 · 0 评论 -
设计模式学习笔记(8) Bridge 桥接模式(结构型模式)
问题在于如果抽象B由于固有的原因,本身并不稳定,也可能变化,怎么办?坦克大战,手机和PC上的同一款游戏,以及不同手机平台上的同一款游戏。只要有重复代码的地方就有重构,重构到顶就得到了模式动机 思考上述问题的症结:事实上由于Tank类型的固有逻辑,使得Tank类型具有了两个变化的维度——一个变化的维度为”平台的变化“,一个变化的温度为”型号的变化“。 如何应对这种”多维度的变...原创 2013-08-10 11:19:15 · 592 阅读 · 0 评论 -
设计模式学习笔记(9) Composite 组合(结果型模式)
俄罗斯套娃r对象容器的问题 在面向对象系统中,我们常会遇到一类具有“容器”特征的对象——即它们在充当对象的同时,又是其他对象的容器。 递归容器 Control?...原创 2013-08-11 16:42:41 · 530 阅读 · 0 评论 -
设计模式学习笔记(5) Factory Method 工厂方法(创建模式)
创建型模式中最重要,理解其他模式的基础代码和结构不是重点,不同的代码可以表现的是同一个模式,而相似的代码则可能是不同的模式设计模式和语言的关系不是很大理解设计模式的理念后再用代码来表达从耦合关系谈起 耦合关系直接决定着软件面对变化时的行为 模块和模块之间的紧耦合使得软件面对变化时,相关的模块都要随之更改。 模块和模块之间的松耦合使得软件面对变化时,一些模块更容易被...原创 2013-08-03 20:53:53 · 493 阅读 · 0 评论