【序】先用VS2005做,失败!又Copy到VS2003,经调试n次后成功,历时二天!
该模式的详细讲解参见(有我好多留言哈,看文章也要看回复):
http://terrylee.cnblogs.com/archive/2005/12/13/295965.html?Pending=true#Post
【总结】
这个模式涉及到的东西好多啊!
①把子类当父类用
昨天发现本好书<<C# Primary plus 中文>> 一晚上就OK了.
②反射(Reflection)
通过Assembly来实现动态生成对象,还可以获得类型的信息什么的.
③程序集相关知识
就是Assembly了,这个得单独讲.
④整个过程的脉络我还是没搞太清楚,太神奇了!
基本上就是先建抽象工厂,再建工厂,有工厂了就可以造东西了.
⑤严重测出了我C#的知识不牢固:
    有待我测试,敬请指点:
    Ⅰ.只有abstract方法可以用override吗?我记得一般的方法也可以重写
         intertface  abstract  virtrul  可以用override 它们是子类父类关系(个人理解因为abstract可以隐式转换为virtrul(把其函数体去掉))    一般方法不能重写,默认属性为非virturl,就是为了防止重写.
     Ⅱ.new也可以重写方法,只能子类用,right?有点自信
right,不过用new叫覆盖.
参见:http://blog.csdn.net/gangyaocn/archive/2006/04/23/673758.aspx
     Ⅲ.Main方法必须用static吗?必须有参数吗?
必须用,Main()是程序的入口,必须用public 和static修饰,有时候会看到没有static,即暗示我们:Main()方法默认为static方法,可以没有参数,其带的参数的使用方法,跟在命令行里敲命令时附带参数相同.具体应用没这方面的经验.好像很少用到.


【注意】类文件和调用文件没在一个命名空间下,所以在Web.config文件里的value值为: 命名空间.类名  搞了好久才搞出来的.要不是这个问题,估计一天就弄完了.

【一个维护性良好的系统应该遵循“开闭原则”。即:封闭对原来代码的修改,开放对原来代码的扩展】

【源码】创建了一个项目,包含该文件:AbstractFactory.cs
  1学习TerryLee 的设计模式:抽象工厂模式(附源码)_AXusing System;
  2学习TerryLee 的设计模式:抽象工厂模式(附源码)_AXusing System.Configuration;
  3学习TerryLee 的设计模式:抽象工厂模式(附源码)_AXusing System.Reflection;
  4学习TerryLee 的设计模式:抽象工厂模式(附源码)_AXnamespace ClassLibrary_AX
  5}


在Web.Config中添加下面这一节:
<appSettings>
<add key="factoryName" value="ClassLibrary_AX.ChineseFactory"></add>
</appSettings>



页面调用查看结果
 1学习TerryLee 的设计模式:抽象工厂模式(附源码)_AXusing System;
 2学习TerryLee 的设计模式:抽象工厂模式(附源码)_AXusing System.Collections;
 3学习TerryLee 的设计模式:抽象工厂模式(附源码)_AXusing System.ComponentModel;
 4学习TerryLee 的设计模式:抽象工厂模式(附源码)_AXusing System.Data;
 5学习TerryLee 的设计模式:抽象工厂模式(附源码)_AXusing System.Drawing;
 6学习TerryLee 的设计模式:抽象工厂模式(附源码)_AXusing System.Web;
 7学习TerryLee 的设计模式:抽象工厂模式(附源码)_AXusing System.Web.SessionState;
 8学习TerryLee 的设计模式:抽象工厂模式(附源码)_AXusing System.Web.UI;
 9学习TerryLee 的设计模式:抽象工厂模式(附源码)_AXusing System.Web.UI.WebControls;
10学习TerryLee 的设计模式:抽象工厂模式(附源码)_AXusing System.Web.UI.HtmlControls;
11学习TerryLee 的设计模式:抽象工厂模式(附源码)_AXusing ClassLibrary_AX;
12学习TerryLee 的设计模式:抽象工厂模式(附源码)_AXusing System.Reflection;
13学习TerryLee 的设计模式:抽象工厂模式(附源码)_AXnamespace AX
14

相关文章:

  • 2021-09-17
  • 2021-11-08
  • 2021-06-16
  • 2022-03-06
  • 2021-07-10
  • 2021-12-13
  • 2021-07-01
  • 2022-01-20
猜你喜欢
  • 2021-06-12
  • 2021-08-14
  • 2021-12-29
  • 2021-12-21
  • 2021-04-20
  • 2021-08-09
相关资源
相似解决方案