当前位置: 首页 > news >正文

网站建设免费加盟代理如何自己做的网站

网站建设免费加盟代理,如何自己做的网站,下载手机导航地图,2003系统建网站hibernatedaosupport的使用 一.“低耦合、高内聚”: 低耦合:就是软件在构造的时候#xff0c;各个模块、各个功能、各个类都不会过度依赖于它周围的环境。只有这样#xff0c;才能使我们的模块#xff08;功能、类#xff09;在周围发生变更时不受影响#xff0c;做到易于…hibernatedaosupport的使用 一.“低耦合、高内聚”: 低耦合:就是软件在构造的时候各个模块、各个功能、各个类都不会过度依赖于它周围的环境。只有这样才能使我们的模块功能、类在周围发生变更时不受影响做到易于维护和易于适应变更。正因为如此也使它更易于重用到其它功能类似的环境中提高了重用性。 高内聚:则使软件中的各个模块功能、类能够各尽其能而又充分合作也就是对于软件问题空间中需求的各个功能系统可以合理地把它分配给各个模块功 能、类来共同完成而不是一个或几个八面玲珑、包打天下的超级类一个人完成。而对于该系统中的某一个模块功能、类具有自己高度相关的职责即该职 责中的几个任务是高度相关的。每一个模块功能、类都决不去完成与自己无关职责的任务。 二.strutsspringhibernate给这种设计提供了方便 1.使用struts我们可以应用MVC模型使页面展现与业务逻辑分离做到了页面展现与业务逻辑的低耦合。当我们的页面展现需要变更时我们只需要修改我们的页面而不影响我们的业务逻辑 2.使用spring我们运用IoC反向控制降低了业务逻辑中各个类的相互依赖。假如类A因为需要功能F而调用类B在通常的情况下类A需要引用类 B因而类A就依赖于类B了也就是说当类B不存在的时候类A就无法使用了。使用了IoC类A调用的仅仅是实现了功能F的接口的某个类这个类可能是类 B也可能是另一个类C由spring的配置文件来决定。这样类A就不再依赖于类B了耦合度降低重用性提高了。 3.使用hibernate则是使我们的业务逻辑与数据持久化分离也就是与将数据存储到数据库的操作分离。我们在业务逻辑中只需要将数据放到值对象中然后交给hibernate或者从hibernate那里得到值对象。至于用Oracle、MySQL还是SQL Server如何执行的操作与我无关。 三.设计时候需要改进的地方 1.编写DAO的时候尽量不直接使用hibernate或者spring对hiberanate的支持 现在我们在编写DAO的时候普遍都是直接继承spring对hibernate的封装类HibernateDaoSupport 然后使用该类提供的诸如saveOrUpdate(), saveOrUpdateCopy(), find()等等。另外在使用excute()方法实现一些更复杂的hibernate功能的时候还会使用hibernate的类诸如Query, Session, Type等。这样直接使用spring和hibernate的类存在的问题在于你的代码将不得不依赖与spring和hibernate的某个版本。比 如说现在hibernate3出来了改动挺大实际上最要命的是包结构hibernate2的包结构是net.sf.hibernate.*然而 hibernate3是org.hibernate.*。同样spring为了支持hibernate3包名也改为 org.springframework.orm.hibernate3.*。假如你现在新开发一个项目这没什么关系如果是升级一个项目问题就来 了。如果你希望将你的一个项目从hibernate2升级为hibernate3你不得不修改DAO中所有对hibernate和spring- hibernate的引用。如果你的代码中出现hibernate2与hibernate3不兼容的方法和类比如saveOrUpdateCopy() 在hibernate3中已经没有了,你还将不得不改写。那么你可能会说我不会这样升级。如果你的软件生命周期有好多年hibernate升级到 4升级到5你还是依然使用hibernate2如果你以这种方式开发一个平台你能要求所有使用你平台的软件项目都只能使用hibernate2 更进一步说我现在开发一个产品今后的客户将是成千上万。经过1、2年我需要升级了这时我的升级包有几十M几乎把所有的DAO都换了个遍这样的升 级无异于重装。 分析原因:是我们项目中的DAO依赖于hibernate和spring因为我们对它们的使用是继承是一种很强的关联就是一种依赖. 解决方案一:我们只需要稍微进行一些调整就可以解决这个问题那就是不使用直接继承而使用接口进行分离。可以使用Fa鏰de模式先建立一个叫 BasicDao的基础类从名称我们可以看出它是所有DAO的基础类实现DAO操作所需的所有诸如save()、delete()、load()、 query()等方法除了一些基本的方法诸如翻页查询、getCount、解析查询条件形成HQL语句等功能也在这里实现但是不要使用与 hibernate或spring有关的任何方法和类。同时BasicDao调用一个叫DaoSupport的接口DaoSupport的接口则是提 供持久化所需的基本方法最原始的元素。然后我为DaoSupport接口提供各种不同的实现比如hibernate2的实现 DaoSupportHibernateImp、hibernate3的实现DaoSupportHibernate3Imp整个结构如下图所示。 BasicDao可以使用hibernate或spring提供的方法但是不是直接使用而是通过调用DaoSupport的实现类来使用。然而 BasicDao到底是使用的那个实现类我们通过spring的IoC通过配置文件来决定到底使用哪个实现。同时BasicDao也不要使用诸如 SpringContext的类来实现IoC而是通过建立setDaoSupport()和getDaoSupport()方法然后在spring配 置文件中建立引用。 四实际开发中的应用 dao public interface Dao:主要封装实现具体数据访问的接口 impl public class BaseDaoImpl extends HibernateDaoSupport implements Dao 具体的实现 其他dao public class ArticleDaoImpl implements ArticleDao{ private Dao dao; private byte status 0; public Dao getDao() { return this.dao; } public void setDao(final Dao dao) { this.dao dao; } } 有这样的引用这样在代码其他DAO里面就可以利用DAO接口来做些操作了. 转载于:https://www.cnblogs.com/earl86/archive/2008/11/06/1666468.html
http://www.sadfv.cn/news/140605/

相关文章:

  • 中小学 网站建设 通知影视网站怎么做
  • 昆明搭建微信网站哪家最优惠怎么样制作app的步骤
  • 南宁网站运营哪家好天津黑臭水体工程中标
  • 网站备案拍照椒江网站建设公司
  • 深圳网站搭建镭拓网站建设
  • 平面设计找图网站一级注册消防工程师报考条件
  • 长沙高端网站制作公司网络规划与设计题库
  • 江苏丹阳建设公司网站鄂州正规网站建设
  • 淄博哪家网络公司做网站好网站买卖交易平台
  • 深圳 网站开发公司足球网站模板
  • 网站可信认证在哪里做东莞松山湖中心医院
  • 做写字楼的网站有哪些wordpress 360cdn
  • 环保类网站模板网站建设柒金手指花总11
  • 网站外链的优化方法下载微信安装微信
  • vps搭建vpn无法访问国内网站群晖服务器做网站
  • 东莞什么行业做网站的多干部重庆网络学院
  • 怎么做考试资料分享网站鞍山做网站团队
  • 用html做的网站步骤外贸自建零售网站做仿牌
  • 新手怎么学做电商win10优化大师好用吗
  • 自助建站免费网站seo专业学校
  • 青海省城乡和住房建设厅网站滨州网站建设sdshiya
  • 建设银行网站注销吗建设一个网站的规划
  • 手机做公司网站wordpress跟php
  • 做抽奖的网站犯法吗中国工程建设工程造价管理协会网站
  • 企业网站模板推荐无锡网站建设的公司
  • 开发网站广州购物网站做兼职
  • angularjs做网站php网站开发是做什么的
  • 建设行政管理部门网站wordpress一步步建企业网站
  • 河南建设河南勘察设计协会网站建设网站50m数据库
  • 深圳网站建设哪家比较专业wordpress安装用户名密码