也谈设计模式之--工厂模式

一、通过对类对象的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) 编辑 收藏