zhanzc

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2013年7月21日

摘要: 《Inside The C++ Object Model》《Effective C++》和《More Effective C++》以及《Exceptional C++》《C++面向对象高效编程(C++ Effective Object-Oriented Software Construction)》《面向对象软件构造(Object-Oriented Software Construction)》《设计模式(Design Patterns)》《The Art of Computer Programming》《C++ Primer》 阅读全文
posted @ 2013-07-21 20:33 zhanzc 阅读(301) 评论(1) 推荐(1)

摘要: 转自:http://www.cnblogs.com/jiese/p/3181099.htmlStrategy策略模式作用:定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。UML图:Strategy模式将逻辑(算法)封装到一个类(Context)里面,通过组合的方式将具体算法的实现在组合对象中实现,再通过委托的方式将抽象接口的实现委托给组合对象实现将算法的逻辑抽象接口(DoAction)封装到一个类中(Context),再通过委托的方式将具体的算法实现委托给具体的Strategy类来实现(ConcreteStrategeA类)Stragegy类 阅读全文
posted @ 2013-07-21 18:00 zhanzc 阅读(381) 评论(0) 推荐(0)

摘要: 概述 在软件构建过程中,我们需要为某些对象建立一种“通知依赖关系” ——一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知。如果这样的依赖关系过于紧密,将使软件不能很好地抵御变化。使用面向对象技术,可以将这种依赖关系弱化,并形成一种稳定的依赖关系。从而实现软件体系结构的松耦合。 意图 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。[GOF 《设计模式》]特点: 1、 Subject和Observer之间是松偶合的,分别可以各自独立改变。 2、 Subject在发送广播通知的时候,无须指定具体的Obser... 阅读全文
posted @ 2013-07-21 16:44 zhanzc 阅读(217) 评论(0) 推荐(0)

摘要: 一个前置声明是指在程序员尚未给出完整定义之前对一个标示符(一个类型、一个变量或者一个函数)的声明。一个很简单的例子就是我们在函数A中使用了函数B,但是函数B的声明在函数A之后,这个时候,就需要对函数B进行前置声明,实际上就是在函数A之前提供一个函数B的原型(prototype)。这种现象其实在C语言编程中我们已经习以为常了,在C++中亦是如此,只不过在编写较大规模程序的时候,由于定义了较多的类,而这些类之间有可能是互相依赖的,换言之,类与类之间会互相引用,包括对成员函数的引用等等。比如需要在文档类调用视图类在doc头文件加前置声明class CTestView;如有必要在doc源文件加上tes 阅读全文
posted @ 2013-07-21 16:05 zhanzc 阅读(517) 评论(0) 推荐(0)