C
cheka
Unregistered / Unconfirmed
GUEST, unregistred user!
设计模式FAQ from a begin
er to those begin
er-to-be
1. Q:什么是设计模式
A:简单地说,设计模式就是软件开发工程师们在进行
面向对象编程中的经验总结。
当你在程序开发中处心积虑基于什么样的原则来构造
一个类,以及绞尽脑汁来规划类与类之间如何通讯时,不
妨尽可能的沿用那些已经过反复实践的模式
2. Q:怎样开始学习模式
A:无论如何,去买下那本同名的书籍《设计模式》,不
是所有让你站在巨人肩膀上的机会都可以用区区39元人民
币换取的。
3. Q:设计模式的先修课
A:不是只有面向对象编程的老手才有资格来学习设计模
式,但是您必须明确自己清楚面向对象的三大要素:封装,
继承,多态。
这里用伪语言写了一段程序,不含任何陷阱,如果您
可以毫不迟疑的说出程序结果,就可以立刻开始设计模式
的学习,否则,最好还是先花些补习时间一下面向对象的
基础。
// -------------------- 类定义 ------------------
class 动物
begin
function 叫;
virtual;
begin
"Hello world"
end;
end;
class 猫 继承自 动物
begin
function 叫;
begin
"喵喵“
end;
end;
class 狗 继承自 动物
begin
function 叫;
begin
"汪汪“
end;
end;
// -------------------- 执行代码 ------------------
procedure main
var cat: 猫;
do
g: 狗;
animal: 动物;
ani: Poiter of 动物;
begin
// 对象创建及析构过程省略
cat.叫;
do
g.叫;
animal.叫;
ani 指向do
g;
ani.叫;
end;
4. Q:很多关于设计模式的资料都是用C++或者Java来讲述
的, 可我是一个Delphi程序员......
A:设计模式就其本身来说没有语言限制(面向对象也是
一样,我见过号称在汇编编程中用OO思想的,一个字
:牛!)但基于许多原因,用Delphi来讲述设计模
式的资料从数量上看远不如 C++ 和 Java ,所以我
个人建议如果有时间不妨先熟悉一下C++的基本语法,
排除掉 运算符重载 还有 模板 这些对于纯Delphi
程序员来说完全陌生的概念,从Object Pascal
到 C++ 并不需要花太多时间,但是关于拷贝构造函
数最好还是看一看,另外指针与引用也是必须熟悉的。
5. Q:学习设计模式光看书就可以了么?
A:不,仅就《设计模式》这本书而言,也不是光看就能
看懂得,功夫在书外。
6. Q:那除了看书,还应该做些什么
A:一 学会寻找身边的Pattern, Delphi中的VCL以及Java
中的JDK 都大量使用了 pattern, 从那些简单的
pattern 开始寻找起,比方说 Absctract Fatory,
Observer 等等。
二 尝试着在自己的程序中套用 pattern, 如果某
天您发现自己对Bridge ,composite 这样相对比
较复杂的模式也已经驾轻就熟,甚至有种欲望想要
把自己的经验也总结成几个Pattern,希望您也给我
们写一份FAQ
---- from an expert to those rookies
er to those begin
er-to-be
1. Q:什么是设计模式
A:简单地说,设计模式就是软件开发工程师们在进行
面向对象编程中的经验总结。
当你在程序开发中处心积虑基于什么样的原则来构造
一个类,以及绞尽脑汁来规划类与类之间如何通讯时,不
妨尽可能的沿用那些已经过反复实践的模式
2. Q:怎样开始学习模式
A:无论如何,去买下那本同名的书籍《设计模式》,不
是所有让你站在巨人肩膀上的机会都可以用区区39元人民
币换取的。
3. Q:设计模式的先修课
A:不是只有面向对象编程的老手才有资格来学习设计模
式,但是您必须明确自己清楚面向对象的三大要素:封装,
继承,多态。
这里用伪语言写了一段程序,不含任何陷阱,如果您
可以毫不迟疑的说出程序结果,就可以立刻开始设计模式
的学习,否则,最好还是先花些补习时间一下面向对象的
基础。
// -------------------- 类定义 ------------------
class 动物
begin
function 叫;
virtual;
begin
"Hello world"
end;
end;
class 猫 继承自 动物
begin
function 叫;
begin
"喵喵“
end;
end;
class 狗 继承自 动物
begin
function 叫;
begin
"汪汪“
end;
end;
// -------------------- 执行代码 ------------------
procedure main
var cat: 猫;
do
g: 狗;
animal: 动物;
ani: Poiter of 动物;
begin
// 对象创建及析构过程省略
cat.叫;
do
g.叫;
animal.叫;
ani 指向do
g;
ani.叫;
end;
4. Q:很多关于设计模式的资料都是用C++或者Java来讲述
的, 可我是一个Delphi程序员......
A:设计模式就其本身来说没有语言限制(面向对象也是
一样,我见过号称在汇编编程中用OO思想的,一个字
:牛!)但基于许多原因,用Delphi来讲述设计模
式的资料从数量上看远不如 C++ 和 Java ,所以我
个人建议如果有时间不妨先熟悉一下C++的基本语法,
排除掉 运算符重载 还有 模板 这些对于纯Delphi
程序员来说完全陌生的概念,从Object Pascal
到 C++ 并不需要花太多时间,但是关于拷贝构造函
数最好还是看一看,另外指针与引用也是必须熟悉的。
5. Q:学习设计模式光看书就可以了么?
A:不,仅就《设计模式》这本书而言,也不是光看就能
看懂得,功夫在书外。
6. Q:那除了看书,还应该做些什么
A:一 学会寻找身边的Pattern, Delphi中的VCL以及Java
中的JDK 都大量使用了 pattern, 从那些简单的
pattern 开始寻找起,比方说 Absctract Fatory,
Observer 等等。
二 尝试着在自己的程序中套用 pattern, 如果某
天您发现自己对Bridge ,composite 这样相对比
较复杂的模式也已经驾轻就熟,甚至有种欲望想要
把自己的经验也总结成几个Pattern,希望您也给我
们写一份FAQ
---- from an expert to those rookies