java 耦合解耦_对象的耦合与解耦.ppt

对象的耦合与解耦 一、面向接口的编程 二、对象间的直接耦合 三、工厂模式 四、反向注入(控制反转) 一、面向接口的编程 为什么要使用接口? 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"?> 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(). getR

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值