如何减少程序间的耦合度?_DI与接口

spring 开发提倡接口编程,配合DI技术可以更好的减少层(程序)与层(程序)之间的解耦合

例子说明:
  任务:要求:
        1.打印机依赖纸张和墨盒
        2.纸张有A4和B5两种
        3.墨盒有彩色和黑色2种
        4.使用A4纸张和彩色墨盒打印指定内容
        5.使用B5纸张和黑色墨盒打印指定内容

        7.要求使用接口

代码:

package Ink;

public interface Ink {
   public String getInk();

}
package Ink;

public class Black_Ink implements  Ink{
    public String getInk()
    {
        return "黑白";
    }
}
package Ink;

public class Color_Ink implements Ink{
    public String getInk()
    {
        return "彩色";
    }
}

package Paper

package Paper;

public interface Paper {
    public String getPaper();
}
package Paper;

public class A4_Paper implements Paper{
    public String getPaper()
    {
        return "A5纸张";
    }
}
package Paper;

public class A5_Paper implements  Paper{
    public String getPaper()
    {
        return "A5纸张";
    }
}
package Print
package Print;

import Paper.Paper;
import Ink.Ink;

public class print {
   private Ink ink;
   private Paper paper;

    public void setInk(Ink ink) {
        this.ink = ink;
    }

    public void setPaper(Paper paper) {
        this.paper = paper;
    }
    public void print(String context)
    {
        System.out.print("使用"+ink.getInk()+"在"+paper.getPaper()+"上,打印:"+context);
    }
}
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans
        xmlns="http://www.springframework.org/schema/beans"
        xmlns:p="http://www.springframework.org/schema/p"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">

        <bean id="A4_Paper" class="Paper.A4_Paper"></bean>
        <bean id="Color_Ink" class="Ink.Color_Ink"></bean>

        <bean id="Print" class="Print.print">
            <property name="paper">
                <ref bean="A4_Paper" />
            </property>
            <property name="ink">
                <ref bean="Color_Ink"/>
            </property>
        </bean>

</beans>

package Test

package Test;

import Print.print;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Test {
    public static void main(String []args)
    {
        ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
        print p=(print)context.getBean("Print");
        p.print("你好!");
    }
}
  通过上面的案例,我们可以体会到DI配合接口编程,确实可以减少层(web层)和业务层的耦合度





转载于:https://www.cnblogs.com/Black-YeJing/p/9131128.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值