一般用到的场景:对象多次被实例引用,切有可能会发生变化
拿我们的简单三层举例子
先定义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>