在线451人
首页
主题表
培训咨询
标签
精华
查搜
注册
登陆
用户
自动登陆
密码
新用户注册
忘记密码?
首页
»
论坛
»
设计模式、框架和架构
上一主题
除了板桥写的,我在developerwork上还看到了用静态方法和静态变量实现 Singleton模式,另外,theserverside上也有。 就拿板桥的 public class Singl..
返回本主题
返回主题列表
下一主题
假设有这样的需求:对数据库表中的某些行的数据修改要能立即检测到,并且通知“关注”此数据的应用。数据修改的过程不可控,有可能是人工修改,也有可能是由其他应用系统修改。 我拟采用如下方案: 1..
Go
总共有
7
回复 /
1
页
前往下页:
ljglory
悄悄话
发表文章: 12
注册时间: 2003年05月30日 20:25
关于对象的建造模式
2003年07月03日 19:32
标签列表
问题是这样的,系统中有很多字典,每个字典都是一个Map,map的key和value组成一个字典项。
我使用简单工厂模式做了一个字典工厂,字典工厂根据用户输入产生用户所需的字典。
字典工厂的职责是,获取用户输入参数(就是一个表示字典名称的String),然后根据这个字典名称实例化对应的DAO(通过一串if else语句),使用DAO查询数据库中对应字典表,获得一个List,再把这个List做成一个Map,返回给客户端。
现在的问题是,在增加字典的时候,如何设计才能保证不用修改字典工厂的代码,即对扩展开放,对修改关闭?
这个问题与工厂模式已经抽象工厂模式所要解决的问题还不一样,工厂模式和抽象工厂模式的目的是要建造不同的产品和不同体现的产品。而在这个问题中,产品都是Map,各个产品的区别仅仅在于数据或者说内容的不同。
大家给我出出主意吧,谢啦。
banq
悄悄话
发表文章: 9524
注册时间: 2002年08月03日 17:08
Re: 关于对象的建造模式
2003年07月03日 21:58
可以让增加字典这一工作放到xml配置文件中做,不知可否?
wwlhp@jdon.com
悄悄话
发表文章: 111
注册时间: 2003年06月03日 17:19
Re: 关于对象的建造模式
2003年07月04日 08:23
我觉得你使用的是静态工厂,静态工厂提供了倾斜的开闭原则支持,也就是说你可以很容易的假如一个新的字典类,但是要在字典工厂里做少量修改。
chenye99
悄悄话
发表文章: 15
注册时间: 2003年06月23日 10:20
Re: 关于对象的建造模式
2003年07月04日 08:52
将字典名称和相应DAO的映射关系写在xml文件中,采用动态加载的方式。或者将实例化DAO的操作抽象成一个abstract类,当新加入字典时,编写相应的该abstract类的子类。在当前工厂中根据输入的字段名称动态加载这些子类。
richardluopeng
悄悄话
发表文章: 71
注册时间: 2002年08月30日 15:52
Re: 关于对象的建造模式
2003年07月05日 13:21
要作到ocp,可以有许多方式
richardluopeng1k7w88g457.gif
ljglory
悄悄话
发表文章: 12
注册时间: 2003年05月30日 20:25
Re: 关于对象的建造模式
2003年07月06日 08:25
谢谢各位!两天没有过来,竟然有了这么多回复!
的确,如几位所说,用配置文件来解决映射问题是个不错的办法!
ljglory
悄悄话
发表文章: 12
注册时间: 2003年05月30日 20:25
Re: 关于对象的建造模式
2003年07月06日 08:47
chenye99,关于你说的第二种方案,你的意思是把字典的名称和DAO的名称对应起来,使用反射来实例化DAO类,是吧?
当然也是可以的,但是我总是不太喜欢使用反射,只要有可能就不用,呵呵。
谢谢!
chenye99
悄悄话
发表文章: 15
注册时间: 2003年06月23日 10:20
Re: 关于对象的建造模式
2003年07月07日 09:09
反射机制是把双刃剑,不过用好了对于程序的灵活性和可扩展性有很多好处。原来我对反射也有抵触心里,不愿意用,不过现在用惯了,觉得还是不错的,hoho
这个主题有
7
回复 /
1
页
Go
上一主题
返回本主题
返回主题列表
返回页首
下一主题
热点TAG:
AOP
cache
缓存
DDD
EJB
集群
设计模式
Hibernate
IOC
JiveJdon
OO
RBAC
Seam
Spring
Struts
正在读取,请等待...
Wowzio
grab this
·
technology
blog
查询本论坛内
近一天
近三天
近一周
近一月
近三月
近半年
近一年
所有
回复超过
的热门帖子
标题
内容
每2分种自动备份发贴内容Ctrl-V粘贴取出,提问题前先查询
标签列表
解惑之道在
J道
,打造中国最具影响力的的企业软件社区
OpenSource
JIVEJDON
v3.0
Powered by
JdonFramework
Code © 2002-08
jdon.com
anti spam