动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息

本月文章推荐
.诊断 Java 代码:设计轻松的代码.
.如何制作Java页面计数器.
.用Java Swing作一个日历控制程序.
.Vector类在Java编程中的应用.
.好东西大家分享:java&xml的学.
.解析构建高性能J2EE应用的5种核心.
.扩展JAAS实现类实例级授权.
.用XSLT 和 XML改进Struts.
.看 JUnit 中Metedata的巧妙应用.
.JScript中的隐式变量声明和var变.
.最佳实践:勿在 Servlet 中实现 .
.Struts框架之构建Model组件.
.JDBCTM 入门指南(3).
.Java社区选举结果.
.struts构建文件上传(八).
.将 Java 小程序迁移到 Microsoft.
.《敏捷Acegi、CAS:构建安全的Ja.
.下一代WEB开发模式Tapestry简介.
.请关注J2ME WTK2.2 的新特性.
.屏蔽.NET自定义开发组件中的属性.

抽象PACKAGES增加系统灵活性

发表日期:2008-1-5 |



  为了确保package关联的灵活性,Java程序员在开发过程中都倾向于package的抽象部分的关联而尽可能地避免具体部分的关联。这样的好处是我们可以最大程度地减小系统中更改所带来的影响,从而获得系统的高度完整性。这一节我们将讲述一些启发式知识,这些知识确保系统中package关联更加灵活,达到增加系统的可扩展性和可维护性的目的。
  
  Package更改是必然
   
  关联紧密的package会减小系统的可靠性,因为package中内容的任一改变都会影响到整个系统。相反,假如package关联很少,则其内容的改变不会殃及其它部分。
  
  大部分的web程序都需要一个日志机制以答应程序能够追踪错误信息并有助于调试。其实,日志机制是一个定制好的package成分,如Apache中的Log4j。无论这些机制是否运行,与日志机制必然有一个关联,这样就潜伏地存在系统不可靠的危机。
  
  因为系统中有很多packages与日志机制有关联,所以必须最大程度地减小日志机制内容的更改。虽然我们不能使用外部的日志机制方式,但我们可以采用其它方法来减小系统的更改对日志机制的影响。最通用的方法是使用正面(facage)模式,这一方法在程序执行过程中可以把改变部分和其他部分隔绝。图A显示了在logfacade中的一个LoggingFacade LoggingFacade类。
  
  Figure A
   抽象PACKAGES增加系统灵活性(图一)
  The LoggingFacade class
  正面方式可以把更改部分隔绝开,与日志机制有关联的部分都通过logfacade运行。日志机制内容可以改变或更新,但这些都被屏蔽起来,程序的其他部分不会遭受影响。
  
  从日志机制这一角度而言,LoggingFacade类支持以下的启发式知识。
  
  更改最小的package将受到最大的关联
  更改最大的package将受到最小的关联
  然而,这一logfacade包还是不太稳定,它会随时破坏整个系统,因为logfacade包在整个系统都要运行。我们必须找到新的一个日志机制方法,抽象package正是这一问题的答案。
  抽象package集中于成员特性
   
  抽象是面向对象程序设计中的一个基本定律。抽象有点难于理解,因为它涉及到过程及过程的结果。当执行一个抽象的过程时,应该集中于成员的重要特性。设计packages时要重视抽象的功能,其中一个好处是,能够在执行过程中把一个package独立开来,即把声明和执行隔离开。
  
  在面向对象中,继续和多态经常被用于把声明从执行隔离开来。在定义一个抽象类时,我们可以从其他抽象类继续一个类并提供一个相应的执行。下面的启发式知识把这一概念应用到package:具有关联的package应尽可能的抽象化。
  抽象的package包含抽象类和界面。因为package一般都是相互关联,你应该确保这些关联发生在抽象的成分,而不是具体的成分。抽象成分的关联有助于系统的扩展。
  
  在我们上面讨论的日志机制例子中,logfacade包的引入减小了日志改变所带来的危机。然而,这一危机只是转移到LoggingFacade类中,并没有彻底的消除。为了更进一步地减小这一危机,我们在logfacade包引入一个LoggerInterface,这一LoggerInterface执行LoggerInterface。如图B说明了LoggerInterface不仅扩展了图A中的设计,而且可以让我们理解新的日志机制。
  
  Figure B
  抽象PACKAGES增加系统灵活性(图二)
  The new LoggerInterface class
  Package设计中应注重的要害事项
  下面列出了设计高灵活的packages应注重的要害问题
  
  生成对象——为了限制packages之间的关联,可以使用“对象工厂”来生成包含内部packages的具体的类,这些“工厂”返回界面数据类型的参数。
  抽象的packages——因为抽象packages能够提供一个与其他packages关联的声明,没有和其他packages关联的抽象packages实质上是无用的。
  抽象程度——我们不可能生成全部包含所有的抽象或界面类。相反,packages一般都抽象类和具体类的混合。在这种情况下,我们应该确信我们只与package的抽象部分关联。
  
  --------------------------------------------------------------------------------
  
  深入学习Java
  请阅读ZDNet China 的Java文章列表,以深入学习Java。
  
  开始动手设计
  在前面的一节里,我们讨论了设计package关联的重要性及它们对系统稳定性的影响。这一节我们集中讨论于抽象packages,这些抽象packages能减小关联,有助于提高灵活的package关联。这些启发式知识将帮助你设计可扩展的,易维护的系统。
  
  本文相关连接请点这里
上一篇:你所需要的《Just Java 2》 人气:529
下一篇:编写跨平台Java程序注意事项 人气:385
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-12 team论坛 v2.0.4 bulid 080916 A
2008-10-12 Roclog v3.1.6
2008-10-12 SupeV v1.0.1 简体中文 GBK
2008-10-12 NetCMS v1.6.0.1010 正式版
2008-10-12 PHP考试系统PPFrame v1.2.7
2008-10-12 LPAS个人相册 v1.6.3
2008-10-12 快问仿百度知道系统 动态-静态-互
2008-10-12 方卡广告防点击系统 V1.0 GB2312
2008-10-12 泡菜内容管理系统[PCMS] v1.0 Bu
2008-10-11 联系人分组工具 v1.1 中文破解版
2008-10-11 FaceMelter变脸 v2.0 汉化破解版
2008-10-11 PathTracker道路跟踪仪 v1.2 破解
2008-10-11 Rooms手机聊天室 v0.6.7 破解版
2008-10-11 RemoteDesktop远程桌面 v1.0 破解
2008-10-11 ProRemote远程调音台 v1.0.1 破解
2008-10-11 PicShare照片共享 v1.0.0 破解版
2008-10-11 Photogene照片编辑器 v1.5 汉化破
2008-10-11 WriteRoom共享文档 v1.0 破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成