设计模式-OOD的设计原则(2)-"里氏代换原则"

摘要: 转载:http://blog.csdn.net/kxy/archive/2005/06/28/406184.aspx 从上一篇的"开-闭"原则中可以看出,面向对象设计的重要原则是创建抽象化,并且从抽象化导出具体化.这个导出要使用继承关系和一个原则:里氏代换原则(Liskov Substitution Principle, LSP). 那么什么是里氏代换原则呢?有个严格的表述,绕口,不好记.还是比较白话的这个好记.说的是:一个软件实体如果使用的是一个基类的话,那么一定适用于其子类,而且它察觉不出基类对象和子类对象的区别.也就是说,在软件里面,把基类都替换成它的子类,程序的行为 阅读全文
posted @ 2011-02-09 09:58 zengqh 阅读(185) 评论(0) 推荐(0) 编辑

设计模式-OOD的设计原则(1)-"开-闭原则"

摘要: 转载:http://blog.csdn.net/kxy/archive/2005/06/27/405013.aspx在继续<设计模式精解>这本书之前,我们来学习些OOD的一些设计原则.这些原则在提高一个系统可维护性的同时,提高这个系统的可复用性.他们是一些指导原则,依照这些原则设计,我们就可以有效的提高系统的复用性,同时提高系统的可维护性. 这些OOD原则的一个基石就是"开-闭原则"(Open-Closed Principle OCP).这个原则最早是由Bertrand Meyer提出,英文的原文是:Software entities should be ope 阅读全文
posted @ 2011-02-09 09:50 zengqh 阅读(179) 评论(0) 推荐(0) 编辑

Strategy模式

摘要: 转载:http://www.tracefact.net/Design-Pattern/Strategy.aspx,我觉得作者讲述设计模式的方法与其他人不同,如此之生动还是第一次遇到。本来想用c++把相关代码改写一下,但是明白了思想就可以,所以没有必要。奇幻RPG(角色技能 与 Strategy模式)引言看过一些设计模式方面的书籍和文章,虽然很正式,很权威,(也觉得有那么一点刻板),总是觉得让人不那么好靠近。于是,我思考着像写故事一样来写下自己对设计模式的理解。我们将以一款奇幻角色扮演游戏(D&D)为蓝本,通过游戏中的模块创建或者功能实现来展示GOF的设计模式。当然,这不是一款真正意义上 阅读全文
posted @ 2011-02-08 18:54 zengqh 阅读(219) 评论(0) 推荐(0) 编辑

Command模式step by step

摘要: 转载:http://www.tracefact.net/Design-Pattern/Command.aspxCommand 模式 Step by Step引言提起Command模式,我想没有什么比遥控器的例子更能说明问题了,本文将通过它来一步步实现GOF的Command模式。我们先看下这个遥控器程序的需求:假如我们需要为家里的电器设计一个远程遥控器,通过这个控制器,我们可以控制电器(诸如灯、风扇、空调等)的开关。我们的控制器上有一系列的按钮,分别对应家中的某个电器,当我们在遥控器上按下“On”时,电器打开;当我们按下“Off”时,电器关闭。好了,让我们开始Command 模式之旅吧。Hard 阅读全文
posted @ 2011-02-08 11:27 zengqh 阅读(202) 评论(0) 推荐(0) 编辑

ShellExecute与组件的注册

摘要: 每一个小COM程序都往注册表里写了一堆东西,而没有反注册,所以觉得在main函数里每次手动注册与反注册比较好。void RegisterDll(){ char exeFileName[256]; ::GetModuleFileNameA(NULL, exeFileName, sizeof(exeFileName) / sizeof(char)); string str(exeFileName); string::size_type index = str.rfind('//'); assert(string::npos != index); string::iterator s 阅读全文
posted @ 2011-02-07 10:33 zengqh 阅读(348) 评论(0) 推荐(0) 编辑

注册表API相关操作演示

摘要: 此代码来自《COM技术内幕》。//// Registry.cpp//#include <objbase.h>#include <assert.h>#include "Registry.h"//////////////////////////////////////////////////////////// Internal helper functions prototypes//// Set the given key and its value.BOOL setKeyAndValue(const char* pszPath, const cha 阅读全文
posted @ 2011-02-06 17:24 zengqh 阅读(205) 评论(0) 推荐(0) 编辑

简单工厂,工厂方法与抽象工厂区别体会

摘要: 转载:http://www.cnblogs.com/millen/archive/2009/02/13/1389974.html.设计模式作为程序员的内功心法,相信每个写过OOP代码的都不会陌生,不过有些模式之间既有区别,又有联系,我们来看看简单工厂,工厂方法与抽象工厂的区别和联系。一、简单工厂 简单工厂模式中工厂为具体工厂,产品为抽象产品,由工厂实例创建产品实例。二、工厂方法 工厂方法中有抽象的工厂类,一种抽象的产品类,而工厂类中仅创建此抽象产品类的实例,具体产品实例由具体的工厂类创建。三、抽象工厂 抽象工厂创建多类产品,可将这些产品理解为一套相关的产品,由工厂在创建时一起创建,每类产品有不 阅读全文
posted @ 2011-01-20 22:46 zengqh 阅读(200) 评论(0) 推荐(0) 编辑

My 2010

摘要: Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE ... 阅读全文
posted @ 2010-12-31 22:57 zengqh 阅读(139) 评论(0) 推荐(0) 编辑

WIN7 英文版右键不显示快捷方式的解决办法

摘要: 一直就觉得右键菜单的快捷键是非常好用的,右键,立即R,属性窗口就出来了。换成英文版后,发现没有快捷提示,非常不方便。 解决方法:Control Panel->Ease of Access->Ease of Access Center->Make the keyboard easier to use。tick off: Underline keyboard shortcuts and access keys. 阅读全文
posted @ 2010-12-24 21:37 zengqh 阅读(185) 评论(0) 推荐(0) 编辑

程序员:编程给你现实生活带来了哪些坏习惯(转)

摘要: 导读:似乎任何职业都会给从业人员带来这样那样的习惯。国外某网站上有位朋友(应该也是程序员)想了解其他程序员在投身堆码事业后有什么样的坏习惯。结果一呼百应,很多程序员纷纷自爆自己的坏习惯和糗人糗事。编程无国界,相信国内堆码界的朋友,也会有同感。 1. 编程已给我带来很多坏习惯,编程也每天在继续给我新增更多的坏习惯。当然有些习惯和编程无关了。下面这些习惯尽管我也很想改掉,但已根深蒂固。 * a.在天地万物中,去发现多态、继承和模式; * b.用十六进制代码中的像素和颜色来解释某东西的大小; * c.在日常交谈中用代码相关的抽象术语。 2. 我现在认为256这个数字非常完美。但非程序员不明白这个.. 阅读全文
posted @ 2010-12-14 15:11 zengqh 阅读(146) 评论(0) 推荐(0) 编辑