xiaocong1001chen 2008-11-03 17:02
浏览 300
已采纳

设计模式的具体应用

[color=red][size=medium]今天看了一个代码说的是抽象工厂的实现问题具体是这样的,
有个factory的接口,有两个实现一个是fatoryproxy,另一个是dbfactory,在factoryproxy中可以得到dbfactory的应用,但是具体的实现是dbfactory实现的,而在访问的dbfactory的时候要用factoryproxy才行,说是在jsp中就可以不用类似的new dbfactory()的语句了,我想知道为什么要这么做?这对程序的扩展有什么好处?[/size][/color]
[b]问题补充:[/b]
dbfactory是factory的具体实现
[b]问题补充:[/b]
很感谢大家的回答,这个代理模式我是知道了,可是怎么没有回答,我想知道为什么要这么做?这对程序的扩展有什么好处?
[b]问题补充:[/b]
您回答的很好,但是不知道我理解的对不对呢?factoryproxy里是工厂的代理,也就是任何工厂的代理例如,dbfactory,mailfactory等,也可以同时包括这些,在factoryproxy中可以对传出的对象进行检测等操作,在类库设计时候,对dbfactory的修改会对client程序员有影响。

  • 写回答

5条回答 默认 最新

  • linpyi 2008-11-07 14:09
    关注

    饶来饶去,有点晕,
    没看到你所说的代码,也不知道我们两讲的是否一样

    设计模式就是让代码更加的解偶,更加的简便.减少代码的书写量,让代码尽可能的从用.

    如果需要在执行所有的对数据库操作前加一个方法,使用代理模式的时候,只需要改动一个类就可以了.(貌似用spring的话,只要加一行配置文件代码,和一个方法就行了)
    需要改动表的时候,只要改动dbfactory后的SQL执行方法,或者说再加一个类继承基类,然后在dbfactory加个实例化的方法..

    我们设计的代码就像MVC那样,我只需要发送和接受,更本就不需要知道你是怎么执行的..

    介绍本书给你看, head frist 设计模式

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 win11家庭中文版安装docker遇到Hyper-V启用失败解决办法整理
  • ¥15 gradio的web端页面格式不对的问题
  • ¥15 求大家看看Nonce如何配置
  • ¥15 Matlab怎么求解含参的二重积分?
  • ¥15 苹果手机突然连不上wifi了?
  • ¥15 cgictest.cgi文件无法访问
  • ¥20 删除和修改功能无法调用
  • ¥15 kafka topic 所有分副本数修改
  • ¥15 小程序中fit格式等运动数据文件怎样实现可视化?(包含心率信息))
  • ¥15 如何利用mmdetection3d中的get_flops.py文件计算fcos3d方法的flops?