首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

分层开发中工厂方法设计模式的有关问题

2012-03-16 
分层开发中工厂方法设计模式的问题。最近要用到工厂方法模式,产生了一个疑问。首先我说说我的理解;分层开发:

分层开发中工厂方法设计模式的问题。
最近要用到工厂方法模式,产生了一个疑问。
首先我说说我的理解;
 
分层开发:是系统架构
工厂方法是局部设计模式。

问1:如果我分三层 UI\BLL\DAL 那么我每层都应用 工厂方法设计模式应该是正确的吧 ???


聊聊我现在系统面临的问题,Winfrom程序。

这是一个实验室 检验数据分析系统。 他分 A\B\C三个子系统,每个子系统有不同的界面,不同的业务及数据结构。
由于客户要求三个子系统集成在一个程序里,所以我现在的设想是 :

1主界面MDI窗体,

IUIBase (SysShowFrom(); SysMenus();SysToolButtons();.....这里定义好界面对象接口

AUI
BUI
CUI

IUIFactory (CreateUI) ....创建界面的工厂接口。

AUIFactory
BUIFactory
CUIFactory

三个系统的UI工厂。(工厂类依赖于界面类。这些工厂我会写在同一个DLL里面,利用插件实现的原理,遍历某个目录下指定DLL加载所有工厂,产生界面对象,并调用相关方法)。

问2:以上我的设计有什么问题没 ?欢迎大家作死的拍砖!


可能以上我表述的不是很专业,可只要大家能明白我的意思就好。 现在只有80分了,全给了。





[解决办法]
如果考虑可扩展,考虑一下MEF
[解决办法]
再进一步弱化依赖,就是IoC了。参考:

http://blog.csdn.net/fangxinggood/article/details/7203212
[解决办法]
没必要每一层都用工厂,其实工厂模式很麻烦,不如用new简单,如果一个类没有抽象为接口,就不需要用工厂来创建,

而且有时候我觉得工厂还不如依赖注入简单,只是依赖注入需要用反射创建实例,效率可能低一些,

问题2的话,很少用工厂创建界面的,这样不太灵活,一般如果是MVC模式的话,最好用工厂创建Action类实例,让Action创建界面,

如果要把各个部分做成插件,建议还是用依赖注入,把类名甚至dll文件名写到xml配置文件中,反射创建实例,
[解决办法]
反射,
[解决办法]
你这样的对象SysShowFrom(); SysMenus();SysToolButtons();.....不少吧,是不是用继承窗体好点啊,先做个大家都需要的窗体,然后继承扩展。
[解决办法]
微软的DI框架 Unity
非微软的DI框架 Ninject
[解决办法]
http://download.csdn.net/download/zschuxin123/4093319
大话设计模式可以看下

[解决办法]

探讨
最近要用到工厂方法模式,产生了一个疑问。
首先我说说我的理解;

分层开发:是系统架构
工厂方法是局部设计模式。

问1:如果我分三层 UI\BLL\DAL 那么我每层都应用 工厂方法设计模式应该是正确的吧 ???


聊聊我现在系统面临的问题,Winfrom程序。

这是一个实验室 检验数据分析系统。 他分 A\B\C三个子系统,每个子系统有不同的界面,不同的业务及……

热点排行