跟小D每日学口语
摘要: 抽象工厂模式(Abstract Factory Pattern)引入:在前面介绍的两个创建型模式里面,我们解决的都是有关"new"的问题,用它们来避免显式指定类创建对象。我写的也非常简单易懂,相信看过的朋友们都应该对简单工厂模式、工厂方法模式的意图、所能解决的问题及适用情景有一定的了解了。但是若要达到灵活运用,什么时候用,怎样用合适还不是看一篇文章就能解决的问题。呵呵..这需要你对OO的理解程度,你的项目开发经验等等许多方面的积累。一起努力喔。。好了,咱们言归正传,通过对这两个模式的了解,我们掌握一种思想,就是在创建一个对象时,需要把容易发生变化的地方给封装起来,来控制变化 阅读全文
posted @ 2011-08-17 15:21 Danny Chen 阅读(457) 评论(0) 推荐(0) 编辑
摘要: 工厂方法模式(Factory Method Pattern)介绍:在简单工厂模式中,我们提到,工厂方法模式是简单工厂模式的一个延伸,它属于Gof23中设计模式的创建型设计模式。它解决的仍然是软件设计中与创建对象有关的问题。它可以更好的处理客户的需求变化。引入我们继续来说"new"的问题,我们在简单工厂模式中,将实例化对象的工作推迟到了专门负责创建对象的工厂类中,这样,在我们事先预知的情况下,可以根据我们的需要动态创建产品类。但是,我们的预知是有限的,客户的变化可能是无限的。所以,就出现了问题,一旦客户的变化超越了我们的预知,我们就必须修改我们的源代码了。这是设计模式所不允许 阅读全文
posted @ 2011-08-17 13:55 Danny Chen 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 昨天参加面试,遇到一个关于new修饰符的题,由于本人不慎,给搞错了,纠其原因,还是因为我的C#基础知识不牢固,关于override与new的区别平时没有太注意。在此,为大家分享一下:代码如下:publicclassbaseClass{publicbaseClass(){Method1();}publicvirtualvoidMethod1(){Console.WriteLine("Method1inbaseClass");}}publicclassderivedClass:baseClass{privateintvalue;publicderivedClass(){valu 阅读全文
posted @ 2011-08-17 12:14 Danny Chen 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 抽象工厂设计模式Client Invokeprotected void btnAbstract_Click(object sender, EventArgs e) { AbstractRoadFactory roadfactory ; roadfactory = new RoadFactory1(); client c1 ; c1 = new client(roadfactory); lblMessage.Text += c1.Run() + "--"; roadfactory = new RoadFactory2(); c1 = new client(roadfactor 阅读全文
posted @ 2011-08-17 11:17 Danny Chen 阅读(205) 评论(0) 推荐(0) 编辑