zoukankan      html  css  js  c++  java
  • 如何减少程序间的耦合度?_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层)和业务层的耦合度





  • 相关阅读:
    基于layui的简易后台管理系统,后期会更新
    java基础语法知识(笔记)——(一)基本变量类型,循环,日期类
    JavaWeb学习总结(笔记)——SSM spring.xml的基本配置
    JavaWeb学习总结(笔记)——SSM中Web.xml文件
    JavaWeb学习总结(笔记)——SSM关键类及其作用
    JavaWeb学习总结(笔记)——关于SSM CRUD上传功能的总结
    JavaWeb——MVC与三层结构
    jquery结合highcharts插件显示实时数据动态曲线图
    jquery结合Highcharts插件实现动态数据仪表盘图形化显示效果
    在IE6/7下表格td标签没有内容时不显示边框?
  • 原文地址:https://www.cnblogs.com/Black-YeJing/p/9131128.html
Copyright © 2011-2022 走看看