-
设计模式的具体应用10
今天看了一个代码说的是抽象工厂的实现问题具体是这样的,
有个factory的接口,有两个实现一个是fatoryproxy,另一个是dbfactory,在factoryproxy中可以得到dbfactory的应用,但是具体的实现是dbfactory实现的,而在访问的dbfactory的时候要用factoryproxy才行,说是在jsp中就可以不用类似的new dbfactory()的语句了,我想知道为什么要这么做?这对程序的扩展有什么好处?
问题补充:
dbfactory是factory的具体实现
问题补充:
很感谢大家的回答,这个代理模式我是知道了,可是怎么没有回答,我想知道为什么要这么做?这对程序的扩展有什么好处?
问题补充:
您回答的很好,但是不知道我理解的对不对呢?factoryproxy里是工厂的代理,也就是任何工厂的代理例如,dbfactory,mailfactory等,也可以同时包括这些,在factoryproxy中可以对传出的对象进行检测等操作,在类库设计时候,对dbfactory的修改会对client程序员有影响。2008年11月03日 17:02
5个答案 按时间排序 按投票排序
-
采纳的答案
饶来饶去,有点晕,
没看到你所说的代码,也不知道我们两讲的是否一样
设计模式就是让代码更加的解偶,更加的简便.减少代码的书写量,让代码尽可能的从用.
如果需要在执行所有的对数据库操作前加一个方法,使用代理模式的时候,只需要改动一个类就可以了.(貌似用spring的话,只要加一行配置文件代码,和一个方法就行了)
需要改动表的时候,只要改动dbfactory后的SQL执行方法,或者说再加一个类继承基类,然后在dbfactory加个实例化的方法..
我们设计的代码就像MVC那样,我只需要发送和接受,更本就不需要知道你是怎么执行的..
介绍本书给你看, head frist 设计模式2008年11月07日 14:09
-
我理解为你是想知道为什么要使用代理模式
首先你有个dbfactory他是执行数据库操作,我们就暂时认为他执行的是一条插入语句
我们把这个SQL语句代理给了一个工厂模式(factoryproxy).
在factoryproxy我们可以做很多东西,例如简单工厂模式,来判断实例不同的对象.
在实例不同对象里面有不同的对象能操作不同的结果,
例如有的对象能插入,有的对象不能插入
我们只需要在factoryproxy里面判断,JSP的逻辑判断完全不需要知道具体怎么操作,一切全部提交到factoryproxy,让工厂类来决定自己能执行什么样的操作,
第一:解藕荷.JSP提交前,不需要知道怎么处理自己这些信息,他只要做提交,工厂模式帮他解决了.
第二:他不需要直接与DAO打交道,也由工厂代理解决,如果你需要修改插入语句,例如修改表名,你只要修改dbfactory后面的SQL语句,不需要动dbfactory前面的factoryproxy和JSP(这里可以理解逻辑处理层)2008年11月07日 10:47
-
也就是说你在JSP上的具体实现是用new factoryproxy来实现的,然后在factoryproxy实现dbfactory,
如果我说的没错的话,应该是个代理模式
在factoryproxy实现dbfactory的前后,可以实现其他的方法
例如public Factoryproxy(){ DbFactory dbfactory new Dbfactory() public void test(){ //可以写其他的方法,比如说权限验证 dbfactory.save(); //可以加入其他方法 } }
这就是 简单代理模式2008年11月06日 12:15
-
我觉得楼主提到的实现用到了两个模式:
Proxy模式和Factory模式。
Factory模式的作用在于将实现延迟
而Proxy模式的作用是封装构造过程。并提供一些权限控制之类的前台控制。
(
可参考设计模式书籍
http://makeitjoy.iteye.com/blog/244333
http://makeitjoy.iteye.com/blog/244335
)
打个比方:中介是一个Proxy(factoryproxy),当A去中介公司找工作的时候,A要告诉中介A的能力以及A的薪水要求。然后中介会根据A的要求提供一个工作(dbfactory)给你。但是中介也有可能根据A的提供资料找不到相应的工作(dbfactory)或者觉得A的简历中有虚假的成分(权限控制)直接拒绝A(throw YourAreEjectedException).2008年11月03日 17:16
相关推荐
Java 设计模式和应用场景分析 摘要:本文讨论了 Java 中的设计模式和应用场景,包括抽象工厂和 Builder 模式,并提供了实例代码。这些设计模式可以帮助开发者解决软件系统中的常见问题,如对象创建和组合、需求变化...
以上是对设计模式应用的一些基本解释,具体的实现细节和应用场景会在`example`中详细展示。通过阅读和理解这个例子,初学者能够更好地理解设计模式的意图和用途,以及如何在实践中有效地运用它们。
设计模式是软件工程中的一种最佳实践,它是在特定上下文中解决常见问题的模板。...在阅读《常用设计模式在开发当中的应用.doc》文档时,可以深入学习每个模式的具体实现和实际案例,以便在实际工作中灵活运用。
文中通过阐述在一个具体的设计实例中如何根据设计要求和上下文选择适当的设计模式,如何权衡设计模式应用的利与弊,展示了如何使用设计模式进行可复用程序设计。通过使用设计模式,文中作为例子讲解的系统在很短的时间...
### JAVA设计模式在JDK中的应用 #### 一、引言 在软件开发过程中,设计模式作为一套被广泛接受的解决方案,能够帮助开发者解决常见的设计问题。Java作为一门流行的编程语言,其标准库(JDK)中巧妙地融入了多种设计...
企业应用系统是现代商业运作的核心,它整合了各种业务流程,实现了信息的高效管理和流转。设计模式则是软件工程中的...在实践中,还需要结合具体业务需求和技术栈,灵活选择和组合设计模式,以达到最佳的系统设计效果。
1. **工厂模式(Factory Pattern)**:工厂模式是一种创建型设计模式,用于创建对象而无需指定创建对象的具体类。包括简单工厂模式、工厂方法模式和抽象工厂模式。 2. **单例模式(Singleton Pattern)**:单例模式...
在实际教学过程中,设计模式的应用应该结合具体的教学目标和学生的学习情况来灵活运用,通过具体的案例分析、小组讨论、代码实践等多种教学手段,让学生在实践中掌握和应用设计模式。同时,教师也应该引导学生对设计...
【Java设计模式综合应用场景】 Java设计模式是一种在特定情境下解决软件设计问题的通用解决方案,它们代表了在软件设计过程中经过验证的、可重用的、面向对象的设计思想。在这个实验报告中,主要讨论了三种设计模式...
JavaEE设计模式是软件开发中的重要概念,它们是经过时间考验、被广泛接受的解决方案模板,用于解决在构建分布式企业级应用程序时常见的问题。这些模式提供了可重用的结构,帮助开发者更有效地组织代码,提高代码的...
结合《Head First 设计模式》的生动讲解和《Java设计模式(第2版)》的具体实现,开发者可以更好地将设计模式融入到自己的编程实践中,提升软件开发的专业水平。 总的来说,这两本书是Java开发者提升设计能力的必备...
接下来,我们将深入探讨这些设计模式及其在实际开发中的应用。 首先,简单工厂模式是一种创建型设计模式,它提供一个静态方法来创建对象,而不直接暴露构造函数。这种模式适用于当类的实例化逻辑相对简单且不会频繁...
在Java语言中,设计模式的应用广泛且深入,可以帮助开发者写出更加灵活、可维护和可扩展的代码。《设计模式-Java语言中的应用》这本书无疑是学习这一主题的宝贵资源。 首先,我们要理解设计模式的基本分类。设计...
本资源包含了GOF设计模式的中英文对照版以及一本设计模式精解的中英文版,对于深入理解和应用设计模式来说,是非常宝贵的资料。 设计模式分为三大类:创建型模式、结构型模式和行为型模式。创建型模式关注对象的...
这可能包括类的结构、接口定义、单例的实现方式以及工厂方法的具体应用。阅读这份文档将有助于理解这两种模式的结合使用。 **代码**文件则提供了实际的Java实现,通过查看这些代码,我们可以看到单例模式和工厂模式...
在内容部分,我们可以看到有关于设计模式的一些具体讨论,例如提到了“‘蝉’类”,这可能是在讲解设计模式中的一种类设计。在面向对象的程序设计中,“蝉”类可能代表一个具体的对象,这个对象具有可扩展性和可维护...
在Java编程语言中,设计模式的应用可以极大地提升代码的可读性、可维护性和可扩展性。本篇主要针对23种经典的设计模式进行深入探讨,并以Java语言为背景,解析它们在实际开发中的应用。 首先,我们有三种主要的设计...
正确应用设计模式不仅需要理解其核心原理,还应考虑具体项目的语境和需求。以下是一些基本原则: - **理解模式的语境**:每个模式都有其适用的场景和限制条件,盲目套用可能会带来不必要的复杂性。 - **灵活运用**...
在给定的资源“23种设计模式分析应用及实现源代码(Java C++)”中,包含了软件设计中的23个经典设计模式,这些模式覆盖了创建型、结构型和行为型三大类别。以下将详细解析这些设计模式及其在实际开发中的应用。 1....