随笔分类 - 设计模式
C#设计模式之五原型模式(Prototype Pattern)【创建型】
摘要:一、引言 在开始今天的文章之前先说明一点,欢迎大家来指正。很多人说原型设计模式会节省机器内存,他们说是拷贝出来的对象,这些对象其实都是原型的复制,不会使用内存。我认为这是不对的,因为拷贝出来的每一个对象都是实际存在的,每个对象都有自己的独立内存地址,都会被GC回收。如果就浅拷贝来说,可能会公用一些字
阅读全文
C#设计模式之四建造者模式(Builder Pattern)【创建型】
摘要:一、引言 今天我们要讲讲Builder模式,也就是建造者模式,当然也有叫生成器模式的,英文名称是Builder Pattern。在现实生活中,我们经常会遇到一些构成比较复杂的物品,比如:电脑,它就是一个复杂的物品,它主要是由CPU、主板、硬盘、显卡、机箱等组装而成的。手机当然也是复杂物品,由主板,各
阅读全文
C#设计模式之三抽象工厂模式(AbstractFactory)【创建型】
摘要:一、引言 写了3篇有关设计模式的文章了,大家有了些反馈,说能从中学到一些东西,我感到很欣慰,那就继续努力。今天我要写第四个模式了,该模式叫抽象工厂。上一篇文章我们讲了【工厂方法】模式,它是为了解决【简单工厂】模式所面对的问题,它的问题就是:如果我们增加新的产品,工厂类的方法就要修改本身的代码,增加产
阅读全文
C#设计模式之二工厂方法模式(Factory Method Pattern)【创建型】
摘要:一、引言 在上一篇文章中我们讲解了过渡的一种模式叫做【简单工厂】,也有叫【静态工厂】的,通过对简单工厂模式得了解,我们也发现了它的缺点,就是随着需求的变化我们要不停地修改工厂里面的方法的代码,需求变化越多,里面的If--Else--也越多,这样就会造成简单工厂的实现逻辑过于复杂。设计模式是遵循一定原
阅读全文
C#设计模式之简单工厂模式(过渡模式)
摘要:一、引言 之所以写这个系列,是了为了自己更好的理解设计模式,也为新手提供一些帮助,我都是用最简单的、最生活化的实例来说明。在上一篇文章中讲解了单例模式,今天就给大家讲一个比较简单的模式——简单工厂模式。但是这里要说明的是,这个模式并不属于GoF23里面的设计模式,其实他属于一个过渡的模式,这个模式是
阅读全文
面向对象设计模式纵横谈:Bridge 桥接模式(笔记记录)
摘要:桥接模式是一个比较难理解的设计模式,设计和分析的时候也不容易把握,咱们听听“李建忠”老师是怎么来讲的。我们还是从演变的角度来说问题,一步一步的来把问题说清楚。先谈谈“抽象”和“实现”的关系。 抽象与实现 抽象不应该依赖于实现细节,实现细节应该依赖于抽象。这个东西很容易理解,抽象的东西是从众多的实例里
阅读全文
面向对象设计模式纵横谈:Adapter 适配器模式(笔记记录)
摘要:适配(转换)的概念无处不在 适配,即在不改变原有实现的基础上,将原先不兼容的接口转换为兼容的接口。生活中适配转换的例子太多了,也是设计模式里面比较容易理解的一个模式。 动机(Motivation) 在软件系统中,由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用,但是新环境要求的接口
阅读全文
面向对象设计模式纵横谈:Prototype 原型模式(笔记记录)
摘要:有一段时间没写东西了,今天继续把没写完的设计模式写完,今天这堂课是创建型设计模式的最后一堂课,原型设计模式,它同样也是解决了对象在创建的过程中的解耦合的情况,面对变化使代码更稳定,更准确的说是使创建对象的主业务逻辑更稳定。好了,我们继续。我们县讨论一下依赖关系。 依赖关系的倒置 抽象不应该依赖于实现
阅读全文
面向对象设计模式纵横谈:Factory Method 工厂方法模式(笔记记录)
摘要:从耦合关系谈起耦合关系直接决定着软件面对变化时的行为-模块与模块之间的紧耦合使得软件面对变化时,相关模块都要随之更改-模块与模块之间的松耦合使得软件面对变化时,一些模块更容易被替换或者更改,但其他模块保持不变 抽象部分变化慢,细节(具体)部分变化快;高层部分变化慢,底层部分变化快。当我们对于系统的认
阅读全文
面向对象设计模式纵横谈:Builder 生成器模式(笔记记录)
摘要:Builder模式的缘起假设创建游戏中的一个房屋House设施,该房屋的构建由几个部分组成,且各个部分要富于变化。如果使用最直观的设计方法,每一个房屋部分的变化,都将导致房屋构建的重新修正…… 动机(Motivation)在软件系统中,有时候面临着“一个复杂对象”的创建工作,其通常由各个部分的子对象
阅读全文
面向对象设计模式纵横谈:Abstract Factory 抽象工厂模式(笔记记录)
摘要:今天是设计模式的第二讲,抽象工厂的设计模式,我们还是延续老办法,一步一步的、演变的来讲,先来看看一个对象创建的问题。 1、如何创建一个对象 常规的对象创建方法: 这样的创建对象没有任何问题,也可以很好的使用。但是如果有需求的变化,比如,如果我们换了一种道路呢,这时候就出现了问题。 new的问题: -
阅读全文
面向对象设计模式纵横谈:Singelton单件模式(笔记记录)
摘要:李建忠老师讲的《面向对象设计模式纵横谈》,早就看过了,现在有了时间重新整理一下,以前的博客【赛迪网】没有了,现在搬到博客园,重新过一遍,也便于以后浏览。 设计模式从不同的角度分类会得到不同的结果。设计模式可以从【目的】和【范围】两个角度来看看。 模式分类 从目的来看【这个分来是广泛使用的】: -创建
阅读全文
面向对象设计模式纵横谈:面向对象设计模式与原则(笔记记录)
摘要:李建忠老师讲的《面向对象设计模式纵横谈》,早就看过了,现在有了时间重新整理一下,以前的博客【赛迪网】没有了,现在搬到博客园,重新过一遍,也便于以后浏览。 在开始具体的讲设计模式之前,先来一篇准备的的文章,也是后面设计模式的来源的文章,没有这些原则,后面的设计模式也是枉谈。这些原则是学习设计模式的基础
阅读全文
浙公网安备 33010602011771号