- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
整理文本
由浅入深学“工厂模式” (1)
2007-03-25 17:13
1、 传授设计模式中存在的问题
我个人最近对设计模式中的工厂模式进行了比较深入的学习, 通过学习感悟
出,现在很多设计模式传道者, 在讲述设计模式的过程中存在一些问题, 使得设
计模式变得很难理解。设计模式本身很抽象,但是这些传道者在讲述的过程中,
将一个抽象的东西讲的更抽象, 从而使我们望而却步。 有些人在讲述的时候, 没
有考虑读者的注意力。比如我在看《 C# 设计模式》的时候,在讲述抽象工厂模
式的时候, 直接就进入了一个示例, 而且这个例子比较复杂, 涉及了比较多的概
念、术语,而且还有算法要处理。但是这些和要讲述的核心内容无关,我想要看
懂他的示例就要将这个东西都搞懂, 就分散了我的注意力。 我个人总结, 学习设
计模式的方法是, 首先找到一个突破口, 比如可以先学习构造型模式中简单的模
式,将它理解、熟练应用。通过对一、两个模式有一个深入的认识之后,再学习
其它比较复杂一点的模式就容易多了, 这是一种迭代的思想在学习中的应用。 另
外学习任何一种设计模式的过程应该是具体-抽象-再具体这个的一个过程。 这
句话的意思是首先通过一个比较具体一点的例子来帮助理解设计模式, 在理解之
后将你的理解扩展到解决这一类问题, 上升到一定的理论高度。 然后就是再到具
体,也就是应用设计模式,应用理论解决自己遇到的实际问题。
2、学习工厂模式的预备知识:
首先声明这些预备知识并不是工厂模式仅仅需要,因为我先讲述工厂模式,
所以在学习工厂模式之前将这些问题提出。
.
整理文本
2.1 Upcasting:
Upcasting中文翻译有好几个,比如向上类型转换、向上转型、上溯造型。
我个人比较喜欢向上转型这个翻译, 即简单又含义明确。 向上转型这个概念, 我
在 Bruce Eckel的 Thinking in c++ 、Thinking in Java中都看到过,我不是很确定这
个概念是否是他提出来的。 向上转型是把一个派生类当作它的基类使用。 我们将
一个更特殊的类型转换到一个更常规的类型, 这当然是安全的。 派生类是基类的
一个超集。 它可以包含比基类更多的方法, 但它至少包含了基类的方法。 向上转
型给我们带来的好处就是我们可以将不同的派生通过一种统一的方式进行处理。
向上转型带来的弊端就是我们向上转型的过程会丢失派生类的接口。 既然有向上
转型,也就有向下转型即 DownCasting,我们在此不做详细讨论。下面使用一个
例子来示例向上转型。
public class Base {
public void Test() {
MessageBox.Show("OK");
}
}
public class Derive:Base {}
private void button1_Click(object sender, System.EventArgs e) {
Base b=new Derive();
b.Test();
}
2.2 多态
我不敢想象离开了多态后的设计模式是一个什么样
文档评论(0)