摘要:
系列文章目录1.C#与C++的发展历程第一 - 由C#3.0起2.C#与C++的发展历程第二 - C#4.0再接再厉开始本系列的第二篇,这篇文章中将介绍C#4.0中一些变化,如C++有类似功能也将一并介绍。个人感觉C#4.0中增加的语言方面的特性不是很多,可能是这个时期都在着力完成随之发布的新的4.... 阅读全文
摘要:
俗话说学以致用,本系列的出发点就在于总结C#和C++的一些新特性,并给出实例说明这些新特性的使用场景。前几篇文章将以C#的新特性为纲领,并同时介绍C++中相似的功能的新特性,最后一篇文章将总结之前几篇没有介绍到的C++11的新特性。 C++从11开始被称为现代C++(Modern C++)语言,开始 阅读全文
摘要:
示例代码来自《深入浅出设计模式》和《大话设计模式》概述简单工厂模式又被称为静态工厂模式,属于类的创建型模式。其实质是由一个工厂类根据传入的参量,动态决定应该创建出哪一个产品类的实例。意图专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。UML图1 简单工厂模式的UML图参与者这... 阅读全文
摘要:
示例代码来自DoFactory。概述当你想要为一个对象的组合增加新的能力,且封装并不重要时,就使用访问者模式。意图表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。UML图1 Visitor模式UML图参与者这个模式涉及的类或对象:Visito... 阅读全文
摘要:
本文摘取自TerryLee(李会军)老师的设计模式系列文章,版权归TerryLee,仅供个人学习参考。转载请标明原作者TerryLee。部分示例代码来自DoFactory。概述变化一直以来都是软件设计的永恒话题,在XP编程中提倡拥抱变化,积极应对。如何更好的去抓住变化点,应对变化?如何更好的提高代码... 阅读全文
摘要:
示例代码来自DoFactory。概述策略模式通过将实现相同功能的不同方法封装起来,使调用者可以方便的在需要的方法之间做出选择。意图定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。UML图1 策略模式的UML图参与者这个模式涉及的类或对象:St... 阅读全文
摘要:
示例代码来自DoFactory。概述状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。当然如果这个状态判断很简单,那就没必要用"状态模式"了。意图允许一个对象在其内部状态改变时改变它的行为。对象看起来似... 阅读全文
摘要:
本文摘取自TerryLee(李会军)老师的设计模式系列文章,版权归TerryLee,仅供个人学习参考。转载请标明原作者TerryLee。部分示例代码来自DoFactory。概述在软件构建过程中,我们需要为某些对象建立一种"通知依赖关系",即一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对... 阅读全文
摘要:
示例代码来自DoFactory。概述当你需要让对象返回之前的状态时,就使用备忘录模式。意图在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。UML图1 备忘录模式的UML图参与者这个模式涉及的类或对象:Memento存储Origin... 阅读全文
摘要:
示例代码来自DoFactory。概述中介者模式出现的背景是,尽管将一个系统分割成许多对象通常可以增加其复用性,但是对象间相互连接的激增又会降低其可复用性。大量的连接使得一个对象不可能在没有其他对象的支持下工作,系统表现为一个不可分割的整体,所以,对系统的行为进行任何较大的改动就十分困难。通过前面对设... 阅读全文
摘要:
本文摘取自TerryLee(李会军)老师的设计模式系列文章,版权归TerryLee,仅供个人学习参考。转载请标明原作者TerryLee。部分示例代码来自DoFactory。概述在面向对象的软件设计中,我们经常会遇到一类集合对象,这类集合对象的内部结构可能有着各种各样的实现,但是归结起来,无非有两点是... 阅读全文
摘要:
部分示例代码来自DoFactory。概述如果一个特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题。意图给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句... 阅读全文
摘要:
本文摘取自TerryLee(李会军)老师的设计模式系列文章,版权归TerryLee,仅供个人学习参考。转载请标明原作者TerryLee。部分示例代码来自DoFactory。概述在软件系统中,"行为请求者"与"行为实现者"通常呈现一种"紧耦合"。但在某些场合,比如要对行为进行"记录、撤销/重做、事务"... 阅读全文
摘要:
示例代码来自DoFactory。概述使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理他为止。意图避免请求的发送者和接收者之间的耦合关系,并让请求有机会得到处理。UML图1 职责链模式UML图参与者这个模式涉及的类... 阅读全文
摘要:
本文摘取自TerryLee(李会军)老师的设计模式系列文章,版权归TerryLee,仅供个人学习参考。转载请标明原作者TerryLee。部分示例代码来自DoFactory。概述在软件系统中,有些对象有时候由于跨越网络或者其他的障碍,而不能够或者不想直接访问另一个对象,如果直接访问会给系统带来不必要的... 阅读全文