也谈设计模式之--工厂模式
一、通过对类对象的new方法的封装,实现了“针对接口编程,而不是针对实现编程”的设计原则。
如有以下代码:
1 //服务提供类
2 public class a
3 {
4 public void print(string printStr)
5 {
6 Console.WriteLine(printStr);
7 }
8 }
9 //用户类
10 class Program
11 {
12 static void Main(string[] args)
13 {
14 public b()
15 {
16 a m_a = new a();
17 m_a.print("打印我吧!");
18 }
19
20
细看代码:a类作为一个服务提供类,相对于使用者类Program封装了自己打印一串字符的具体实现,而开放了打印一串字符的接口。即“Console.WriteLine(printStr);”这句代码对于Program类是不可见的。Program只需要知道a类有一个print方法能做打印,具体怎样打印由a类自己去实现。好比经理让秘书去复印一份文件,经理只需要将元件交给秘书,秘书就自然会将复印好的文件交给经理。
我相信这个例子大部分人都能理解,那么我为什么还有这么废话呢?
·主要是强调一点:
关系--谁是服务提供者?谁是用户?
·上面这个列子只是讲了对一般实现方法的封装,然而我们要认识到的是:
“创建一个类的对象”这个过程也是一个实现方法,有时候也需要对这个实现方法进行封装。由于许多面向对象编程人员忽略了对“创建一个类的对象”的封装,于是就诞生了一些基于类对象创建的面向对象设计模式。
·工厂模式便是一种基于类对象创建的面向对象设计模式。
posted on 2008-10-28 01:38 badnewfish 阅读(40) 评论(2) 编辑 收藏
