JiveJdon Community Forums
在线176人   首页   主题表   培训咨询   标签   精华   查搜   注册    登陆 RSS
首页 » 论坛 » 设计模式、框架和架构
???en_US.forumThreadPrev.name??? 上一主题
google yahoo 365Key网摘 CSDN网摘 添加到百度搜藏 POCO网摘 新浪ViVi 天极网摘
???en_US.forumThreadNext.name??? 下一主题
Go 共有 0 回复 / 1
 发表新帖子   回复该主题贴
liubing76

悄悄话
发表文章: 16
注册时间: 2003年03月27日 12:42
关于一个创建型模式的讨论: 2003年05月16日 13:58 到本帖网址 加入本帖到收藏夹 回复该主题
标签


关于一个创建型模式的讨论:


我在构造一个web framework时,定义action其实就是Struts的action,
当然他也是command模式。我在创建它时使用以下模式,
目前假设有两个action
public class loginAction extends action{

}
public class logoutAction extends action{

}

当初我使用了简单工厂方法,根据请求的urlpath动态创建,

public class actionFactory{
public static action(string urlpath){
if (urlpath.equal("")){
return loginAction();
}else if (urlpath.equal("")){
return logoutAction();
}
}
}
这个工厂方法,每次都创建新的action,性能不好,我们希望香Struts一样使用cache,
于是我们改为,可以使用每次创建新的action,也可以使用cache创建,并且可以配置,
甚至客户可以二次开发,实现自己的工厂方法,只需实现一个接口,如下:

//定义创建接口
public interface actionFactory{
public action(string urlpath);
}

//每次都创建新的action
public class newActionFactory implements actionFactory{
public action(string urlpath){
if (urlpath.equal("")){
return loginAction();
}else if (urlpath.equal("")){
return logoutAction();
}
}
}
//使用cache创建模式。
public class cacheActionFactory implements actionFactory{
Hashmap cache=new HashMap();

public action(string urlpath){
if (urlpath.equal("..")){
if(cache.get("..')){
return (Action)cache.get("..')
} else{
Action obj=new loginAction();
cache.put("",obj );
retunrn obj;
}

}else if (urlpath.equal("")){
//省略
}
}
}


这样我们提供一个配置文件,客户可以动态决定使用那种工厂方式,来创建action,
如下:
actionFactory=cacheActionFactory;

这种方式我使用了,现在我不知道,这到底属于那种模式,
是工厂方法,还是抽象工厂,它们都不像??

我认为是 工厂方法,但是有的同时认为,不是?

可以参考设计模式的73页,参数化工厂方法??

大家可以讨论?
标签
共有 0 回复 / 1Go
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表    返回页首返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG:
正在读取,请等待...
查询本论坛内 回复超过的热门帖子
标题
 
粗体: [b]文本[/b] 斜体: [i]文本[/i] 下划线 [u]文本[/u] 插入图片 [img]http://wwww.xxxx.com/img.ext[/img] 插入代码 [code]程序代码[/code]  插入url链接 [url]http://url[/url] / [url=http://url]URL加下滑线[/url] 插入附件 插入word文档 Txt等文件
内容
  提交时自动拷贝以上内容到剪贴板 Ctrl-V可取出;提问题前先查询标签列表

RSS 手机阅读 add to google add to yahoo
解惑之道在J道 ,打造中国最具影响力的的企业软件社区 推荐Chrome快速浏览本站
OpenSource JIVEJDON v3.5 Powered by JdonFramework Code © 2002-09 jdon.com

anti spam