天天看点

第2章 简单工厂模式(Sample Factory)     除非注明:第一博客文章均为原创,转载请以链接的形式注明本文地址     本文地址:http://www.diyibk.com/post/44.html

一般用到的场景:对象多次被实例引用,切有可能会发生变化

拿我们的简单三层举例子

先定义dal层

1

2

3

4

5

6

7

8

<code>    </code><code>class</code> <code>Dal</code>

<code>    </code><code>{</code>

<code>        </code><code>public</code> <code>void</code> <code>Delete()</code>

<code>        </code><code>{ </code>

<code>         </code><code>//...</code>

<code>         </code><code>}</code>

<code>       </code> 

<code>    </code><code>}</code>

工厂类

9

10

<code>    </code><code>class</code> <code>Factory</code>

<code>        </code><code>//这样掉的好处是  当dal层发生变化的时候不需要去每个调用的地方修改对应的实例,只需要在工厂里面修改对应的实例就行。</code>

<code>        </code><code>//例如Dal的名字换成DAL  这个时候只需要改动工厂里面对应的实例名称即可。</code>

<code>        </code><code>public</code> <code>static</code> <code>Dal CreateInstance()</code>

<code>       </code><code>{</code>

<code> </code> 

<code>           </code><code>return</code> <code>new</code> <code>Dal();</code>

<code>       </code><code>}</code>

在BLL层中实例化Dal层对象

<code>    </code><code>class</code> <code>Bll</code>

<code>        </code><code>Dal dal = Factory.CreateInstance();</code>

这样的好处是当dal层名称发生变化时,只需要改动一处即可,调用者无需关系调用的对象!

优点:可以提高程序的扩展性,减少修改量!

当然简单工厂有的时候并不能很好的满足我们的需求,后续还会讲到抽象工厂。

<a href="http://www.wumii.com/item/19e1XKI2j" target="_blank">0</a>

您可能也喜欢:

<a href="http://www.diyibk.com/post/45.html"></a>

抽象工厂模式

<a href="http://www.diyibk.com/post/117.html"></a>

职责链模式

<a href="http://www.diyibk.com/post/103.html"></a>

备忘录模式

<a href="http://www.diyibk.com/post/115.html"></a>

策略模式

<a href="http://www.diyibk.com/post/98.html"></a>

中介者模式

<a href="http://www.wumii.com/widget/relatedItems" target="_blank">无觅关联推荐[?]</a>

继续阅读