摘要: OOP基础。OOP有三大目标,重用性、灵活性和扩展性。OOP有三大特性,封装、继承和多态。抽象虽然不是OOP的编程特性,但它却是所有编程语言的最大特性。封装,隐藏程序的属性和的实现细节,并控制属性的访问权限,对外仅提供接口。继承,是对基类的代码进行利用并扩展基类,是一个从一般到特殊的过程。多态,运行... 阅读全文
posted @ 2014-05-20 22:55 飞鹤0755 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 基本上涉及到了VC++编写DLL经常使用的大部分内容,主要面向有一定工作经验的VC++程序员,以实用为主,言简意赅. 希望看过这篇文章的程序员人能够不再为DLL的编写烦心了. 阅读全文
posted @ 2014-05-14 22:34 飞鹤0755 阅读(10417) 评论(3) 推荐(7) 编辑
摘要: 定义:访问者模式(VistorPattern),表示一个作用于对象结构中各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。类型:对象行为型模式。概述:访问者模式适用的场合比较狭窄,因为它的要求非常严。ConcreteElement要求具有一样的算法接口,并且Concret... 阅读全文
posted @ 2014-04-22 16:25 飞鹤0755 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 定义:模板方法模式(TemplateMethod Pattern),定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模块方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。类型:类行为型模式概述:模板方法模式应该算是所有设计模式中最简单,却也是应用得最多的模式了。模板方法模式其... 阅读全文
posted @ 2014-04-20 22:30 飞鹤0755 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 定义:策略模式(Strategy Pattern),定义一系列算法,把它们一个个封装起来,并且使它们可以相互替换。本模式使得算法可以独立于使用它的客户而变化。类型:对象行为型模式。概述:策略模式是比较典型的对象行为型模式,它是将对处理对象的一系列不同算法都单独抽离出来,单独封装成一个个类。策略的出现,主要是为了解决不同算法替换时的逻辑判断,将逻辑判断移到Client中去。策略模式比较常见,但是也相对比较简单。一系列算法,作为程序员,很容易就想到排序算法。那这里就以排序算法来举例了。有文本内容Context,如果录得的是乱序数据,那么排序最好选择快速排序(Quick Sort);如果是多部分都有 阅读全文
posted @ 2014-03-23 23:06 飞鹤0755 阅读(376) 评论(0) 推荐(0) 编辑
摘要: 定义:状态模式(State Pattern),允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。类型:对象行为型模式概述:一个对象有一个状态,那么每一个状态又对应一些相应的行为。如果这个对象有很多状态,那么就要对应非常多的行为。那么对这些状态的判断以及根据状态完成相应的行为,会非常复杂。并且如果想添加一种新的状态时,需要修改很多的现有代码。这也是有违开闭原则的。状态模式正是在这样一种情况下提出来的。状态模式将每种状态对应的行为抽象出来成为单独的新的对象,这样将状态转换显式化了。状态的变换不再依赖于Context内部的行为了。另外,将状态及行为提出来能够大为降低Contex 阅读全文
posted @ 2014-03-13 00:32 飞鹤0755 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 定义:观察者模式(ObserverPattern),定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。类型:对象行为型模式概述:观察者模式也是比较难以理解,单看类图,会发现观察者模式与中介模式非常相似。如果不真正理解他们二者之间的区别,是难以真正理解观察者模式的。如果不理解观察者模式,更奢谈运用观察者模式了。中介模式主要是解决一系列交互对象的耦合的问题,而提出了中介类。几个以前交互的对象现在统一通过中介类来完成交流。而观察者模式侧重的是一对多的通知的功能,即当发生某件事时,主题对象将向所有注册过的观察者对象发出通知消息。中介模式侧重通过中介 阅读全文
posted @ 2014-03-12 00:07 飞鹤0755 阅读(474) 评论(1) 推荐(0) 编辑
摘要: 定义:备忘录模式(MementoPattern),在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。类型:对象行为型模式。概述:备忘录模式使用的范围比较窄,即比较复杂的状态需要恢复到之前的状态。现实更多的情况只有很简单的状态需要恢复,如果用备忘录模式有点大材小用的感觉。就像用大炮打蚊子,起不到什么作用。在《Head First Design Patterns》,备忘录模式也被列为不常用的模式之一。备忘录模式相对比较简单,即把一个有着复杂状态且需要恢复Originator的对象中的一些需要被保存的状态再次抽象出来,并提供一些操作 阅读全文
posted @ 2014-03-08 20:11 飞鹤0755 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 定义:中介者模式(MediatorPattern),用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。类型:对象行为型模式概述:面向对象编程,鼓励将行为分散到对象当中。这样的好处,增强对象的可复用性,但是带来的负面作用是,当多个对象交互时不可避免地会带来耦合性的大大提升。中介者模式的提出,就是为了解决多个对象相互交互时耦合性提升的问题。中介者模式主要通过将不同对象中涉及到交互的行为抽象出来,达到解耦的作用。这样,每个对象都只需要和中介者打交到即可,不用关注太多的对象。比如一个项目组,有一个项目经理和几个项目开发人员。如 阅读全文
posted @ 2014-03-07 21:14 飞鹤0755 阅读(405) 评论(0) 推荐(0) 编辑
摘要: 定义:迭代器模式(IteratorPattern),提供一种方法顺序访问一个聚合对象中各个元素,而又暴露无遗该对象的内部表示。类型:对象行为型模式概述: 正如定义所言,迭代器是为解决更好的访问一个聚合对象中的各个元素而产生的。迭代器是对象行为模式,也即它主要是通过将对象中的访问行为提取出来作为迭代器类。迭代器的产生,主要是为了解决客户端对聚合对象内部元素访问时可能造成的耦合。为了使得迭代器能够访问更多的聚合对象,所以需要面向接口编程,即为迭代器和聚合对象分别提供统一接口。 C++中的STL库、C#,Java的泛型类型都有封装迭代器,所以下面的示例重点了解迭代器的工作原理。举一个简单示例,有一. 阅读全文
posted @ 2014-02-26 18:20 飞鹤0755 阅读(225) 评论(0) 推荐(0) 编辑