网站大量收购闲置独家精品文档,联系QQ:2885784924

对象的耦合与解耦.ppt

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
对象的耦合与解耦 一、面向接口的编程 二、对象间的直接耦合 三、工厂模式 四、反向注入(控制反转) 一、面向接口的编程 为什么要使用接口? Java不支持多继承,一个类只能有一个父类 一个类可以实现多各个接口 当描述某一类事物的共同行为时,通常使用接口来描述 使用接口的好处? 面向接口的编程 为什么要使用接口? (1)Java不支持多继承,一个类只能有一个父类 eg: // 线程的实现: public class MyThread extends Thread { public void run() { } } 面向接口的编程 为什么要使用接口? (2) 在Java中 一个类可以实现多各个接口 public class MyClass implements interface1,interface2 { } 当描述某一类事物的共同行为时,通常使用接口来描述 ,提高代码的扩展能力 接口的本质 接口在表面上是由几个没有主体代码的方法定义组成的集合体,有唯一的名称,可以 被类或其他接口所实现(或者也可以说继承) interface InterfaceName { void Method1(); void Method2(int para1); void Method3(string para2,string para3); } 接口的本质 接口是一组规则的集合, 它规定了实现本接口的类或接口必须拥有的一组规则. 体现 了自然界如果你是……则必须能……的理念. 例如, 在自然界中,人都能吃饭,即如果你是人,则必须能吃饭. //定义斧头接口 public interface IAxe { //斧头接口里有“砍”的方法 public void chop(); } 二、对象间的直接耦合(直接依赖) 当应用程序中A对象(组件)需要B组件协助时,A直接使用new 创建被B对象, DAO DBUtil db = new DBUtil(); Servlet xxxDAO dao = new xxxDAO(); 三、工厂模式 通过专门的”工厂“负责对象的创建,调用者只需通过“工厂”来获得所需要的对象,无须管理被调用者对象的具体创建。 工厂模式---面向接口的编程 当应用程序中A对象(组件)需要B组件协助时,并不是直接创建B组件的对象,而是通过B组件的工厂 对于A组而言,只关心工厂生产的实例是否满足某种规范,即实现了某个接口 接口中产生的全部实例通常实现相同的接口,接口中定义了全部实例共同拥有的方法,这些方法在不同的实现类中实现方式不同,程序无须关心方法的具体实现,降低系统维护的代价。 四、依赖注入 程序在运行过程中,如果需要调用另外一个对象时,无须在代码中创建被调用者,而是依赖外部的注入。 当需要改变被调用者时,无须直接修改调用者的代码,只需要修改某些配置文件即可。 当需要创建对象时,通过读取配置文件 axeContext.xml来创建 ?xml version=1.0 encoding=GBK? axeContext app id=“axe class=com.impl.StoneAxe / /axeContext XML文档的解析 SAXReader 需要dom4j-1.6.1.jar import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.*; SAXReader xmlread = new SAXReader(); //得到Document对象 Document doc = xmlread.read( AxeFactory2.class.getClassLoader(). getResourceAsStream(axe

文档评论(0)

wxc6688 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档