摘要:C#面向对象设计模式第一讲:面向对象设计模式与原则 C#面向对象设计模式第二讲:Singleton Pattern单件模式(创建型模式) C#面向对象设计模式第三讲:Abstract Factory...
阅读全文
随笔分类 - VS
摘要:1、创建型模式: Singleton:解决的是实例化对象的个数的问题,比如抽象工厂中的工厂、对象池等,除了Singleton之外,其他创建型模式解决的都是 new 所带来的耦合关系。 Abstract...
阅读全文
摘要:(根据MSDN WebCast相关课程整理) 类层次结构中可能经常由于引入新的操作(虚方法),从而将类型变得脆弱。 如下图是一幅类继承关系的层次结构图, 如果在父类中直接增加一个虚方法时,所有的子类...
阅读全文
摘要:(根据MSDN WebCast相关课程整理) 这是一种应用非常广泛的行为型设计模式。 对象可能经常需要用多种不同的算法,但是如果变化频繁,会将类型变得很脆弱。 如上图所示,对...
阅读全文
摘要:(根据MSDN WebCast相关课程整理) 对象拥有不同的状态,往往会行使不同的行为。如图: 通常,我们可以采用switch…case语句来解决问题,但是,如果这种状态变化比较频繁...
阅读全文
摘要:(根据MSDN WebCast相关课程整理) 对象状态变化无端,如何回溯或恢复这些对象在某个点的状态呢? GoF:在不破坏对象封装性的前提下,捕获一个对象的内部状态,并在该对象外保存这个状态...
阅读全文
摘要:(根据MSDN WebCast相关课程整理) 在一些情况下,请求的接收者可能多种多样,变化无常,如下图所示: 请求的发送者需要维护多个耦合,以处理请求信息的传达。这就存在多个强耦合。 GoF...
阅读全文
摘要:(根据MSDN WebCast相关课程整理) 常用设计模式有23种,通常可以分为创建型(5种),结构型(7种)和行为型(11种)三大类型。 考察以下场景:ATM机操作中,当持人订阅了短信,邮件等通知的...
阅读全文
摘要:(根据MSDN WebCast相关课程整理) 解决集合和访问的问题。 集合内部结构主要有链表式,顺序式等。 组件开发人员往往希望在不暴露组件内部结构的前提下,提供灵活的外部访问。 GoF:提供一种方法...
阅读全文
摘要:(根据MSDN WebCast相关课程整理) 中介者模式的依赖关系: 多个对象彼此之间存在错综复杂的依赖关系,当一个对象发生变化时,可能会引发多个对象随之发生变化。当采用一个中间对象后,该对象不保存与...
阅读全文
摘要:(根据MSDN WebCast相关课程整理) 把变化的东西抽象成一种类似于“语言”的东西,让我们的对象来解析它,从而适应变化的需求。 示例:在一个将汉字转化为数字的项目中,随着需要解析的汉字数据越来...
阅读全文
摘要:(根据MSDN WebCast相关课程整理) 实体对象与行为操作之间往往也存在耦合关系。 行为请求者通过“命令”行为实现者去执行一定的行为。 GoF:将请求封装成一个对象,从而使我们可用不同的请求对客...
阅读全文
摘要:(根据MSDN WebCast相关课程整理) 变化是软件设计中永恒的主题,如何管理变化带来的复杂性?设计模式的艺术性与复杂度就在于如何分析并发现系统中的变化点和稳定点,并使用特定的设计方法来应对这种变...
阅读全文
摘要:(根据MSDN Webcast 相关课程整理) 直接与间接: 对于复杂的系统,我们常常在使用时添加一个中间层,从而屏蔽一些不常用的功能,或简化一些常用功能等,从而达到用简单灵活的方法满足特定的需要的...
阅读全文
摘要:(根据MSDN Webcast 相关课程整理) 面向对象很好的解决了系统抽象的问题,同是不会损害系统的性能。但是在某些特殊应用中,由于对象的数量太大,采用面向对象会给系统带来难以承受的内在开销。 比如...
阅读全文
摘要:(根据MSDN Webcast相关课程整理) 先看以下实例: 左边的方案中客户调用程序与子系统内部的具体实现类具有较多的耦合与交互。显然是不理想的设计方案。随着外部客户程序和各子系统的演化,这种过多的...
阅读全文
摘要:(根据MSDN Webcast相关课程整理) 假设场景:游戏中的坦克不仅具有类型的不同,可能同一种坦克也会有不同,如我们可能会希望为某种类型的坦克,如T50,增加(扩展)一种或多种新功能。如果增加红外...
阅读全文
摘要:(根据MSDN Webcast相关课程整理) 由俄罗斯套娃讲起。娃娃里又包含另一个娃娃,最后那个不包含任何娃娃。 组合模式,采用树型结构来实现普遍存在的对象容器,将本原一对多的复杂的关系,转换成一对一...
阅读全文
摘要:根据MSDN Webcast相关课程整理) GoF:将抽象部分与实现部分分离,使它们都可以独立地变化。 如下图所示: 显然,当实现细节b易变时,我们通常考虑采用原型模式来构造系统。然而,当抽象B由于...
阅读全文
摘要:根据MSDN Webcast相关课程整理) 适配:在不改变原有实现的基本上,将原先不兼容的接口转换成兼容的接口。 GoF:将一个类的接口转换成客户需要的另一个接口,便得原来由于接口不兼容而不能一起工作...
阅读全文

浙公网安备 33010602011771号