Java Web设计模式之依赖倒换原则

1.依赖倒置原则

  A.高层次的模块不应该依赖于低层次的模块,他们都应该依赖于抽象。

  B.抽象不应该依赖于具体,具体应该依赖于抽象。

2.用UML图来说明一下:

代码说明:

(1)管理员接口

1 package com.alibaba.com.miao;
2
3 public interface IEmployee {
4
5     public String code(ICode code);
6 }

(2)编码接口

1 package com.alibaba.com.miao;
2
3 public interface ICode {
4
5     public String getRun(String Run);
6 }

(3)编码类

 1 package com.alibaba.com.miao;
 2
 3 public class Code implements IEmployee {
 4
 5     private static final String Run = "编码活动";
 6
 7     @Override
 8     public String code(ICode code) {
 9
10         System.out.println(code + "程序员开始编码...");
11
12         return code.getRun(Run);
13     }
14 }

(4)普通程序员

 1 package com.alibaba.com.miao;
 2
 3 public class CommonProgrammer implements ICode {
 4
 5     private static final String Run = "JACK";
 6
 7     @Override
 8     public String getRun(String Run1) {
 9         String Run2 = "工作";
10         System.out.println(Run + " 普通程序员开始工作");
11         return Run2;
12     }
13
14 }

(5)高级程序员

 1 package com.alibaba.com.miao;
 2
 3 public class SeniorProgrammer implements ICode {
 4
 5     private static final String Run = "李四";
 6
 7     @Override
 8     public String getRun(String Run1) {
 9         String Run2 = "工作";
10         return Run2;
11     }
12
13 }

(6)测试类

 1 <%@page import="com.alibaba.com.miao.ICode"%>
 2 <%@page import="com.alibaba.com.miao.CommonProgrammer"%>
 3 <%@page import="com.alibaba.com.miao.SeniorProgrammer"%>
 4 <%@page import="com.alibaba.com.miao.Code"%>
 5 <%@page import="com.alibaba.com.miao.IEmployee"%>
 6 <%@ page language="java" contentType="text/html; charset=UTF-8"
 7     pageEncoding="UTF-8"%>
 8 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 9 <html>
10 <head>
11 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
12 <title>单一职责原则</title>
13 </head>
14 <body>
15
16     <%
17         IEmployee employee = new Code();
18
19         ICode code = new SeniorProgrammer();
20         ICode code1 = new CommonProgrammer();
21
22         out.println(" " + employee.code(code));
23         out.println("管理人员派张三高级程序员" + employee.code(code1));
24     %>
25
26 </body>
27 </html>

(7)参考目录结构

   

参考:Java Web设计模式之道。

Java Web设计模式之依赖倒换原则

时间: 2024-12-14 21:46:49

Java Web设计模式之依赖倒换原则的相关文章

Java Web 设计模式之开闭原则

1.开闭原则(OCP) 遵循开闭原则设计出的模块具有两个主要特征: (1)对于扩展是开放的(Open for extension).这意味着模块的行为是可以扩展的.当应用的需求改变时,我们可以对模块进行扩展,使其具有满足那些改变的新行为.也就是说,我们可以改变模块的功能. (2)对于修改是关闭的(Closed for modification).对模块行为进行扩展时,不必改动模块的源代码或者二进制代码.模块的二进制可执行版本,无论是可链接的库.DLL或者.EXE文件,都无需改动. 2.通过UML

Java web设计模式学习

1.开闭原则(OCP):指“软件实体应当对扩展开放,对修改关闭”,是所有设计原则的基础,我们可以简单地理解成,我们可以根据新的需求随意添加类而不要修改原有的类. 2.单一职责原则(SRP):指“对一个类而言,应该仅有一个引起它变化的原因”,简单理解就是一个类只完成自己的职责不编制多余的职责,从而使其符合“高内聚低耦合”的标准. 3.里氏代换原则(LSP):指“如果对每一个类型为S的对象o1,都有类型为T的对象o2,使得以T定义的所有程序P在所有的对象o1代换o2时,程序P的行为没有变化,那么类型

ASP.NET 设计模式中依赖倒置原则

依赖倒置原则 A.高层次的模块不应该依赖于低层次的模块,他们都应该依赖于抽象. B.抽象不应该依赖于具体,具体应该依赖于抽象. 依赖倒置原则 A.高层次的模块不应该依赖于低层次的模块,他们都应该依赖于抽象. B.抽象不应该依赖于具体,具体应该依赖于抽象. 目录 1概述 2意图 3代码实现 4结构图 1概述编辑 所谓依赖倒置原则(Dependence Inversion Principle)就是要依赖于抽象,不要依赖于具体.简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现

依赖倒换原则——Dependence Invrsion Principle

1.定义:a,设计系统时用抽象来分析,而不必一开始关注细节 b.针对接口编程,不要针对实现编程.通过接口进行函数.参数.变量声明,避免实现类自己去做各种声明. 2.实现:如果创建的是动态对象,要使用依赖倒换原则.实现类要去调用接口或抽象类. 3.例:公司有一个管理层,两个程序员分类,如何实现管理层指定某类程序员去工作: 根据依赖倒换原则,应该定义一个管理层接口,主要用于实现调用程序员,还应该定义一个程序员接口,然后不同类的程序员直接去实现这个接口,管理层实现直接调用程序员接口即可. (1)管理层

学习大话设计模式05_依赖倒转原则

依赖到转原则 A.高层模块不应该依赖低层模块.两个都应该依赖抽象. B.抽象不应该依赖细节.细节应该依赖抽象.即:针对接口编程,不要对实现编程. 里氏代换原则: 一个软件实体如果使用的是一个父类的话,那么一定适用于其子类,而且它察觉不出父类对象和子类对象的区别.也就是说,在软件里面,把父类都替换成它的子类,程序的行为没有变化. (子类型必须能够替换掉它们的父类型) 只有当子类可以替换掉父类,软件单位的功能不受影响时,父类才能真正被复用,而子类也能够在父类的基本上增加新的行为. 由于子类型的可替换

设计模式(5)-----依赖倒转原则

依赖倒转原则 定义 A.高层模块不应该依赖底层模块.两个都应该依赖抽象. B.抽象不应该依赖细节.细节应该依赖抽象. 在面向对象的世界里,所谓的抽象指的就是借口和抽象类,而对于依赖倒转原则自己更深的理解就是“面向接口编程”. 例子 在一个汽车自动检测系统中,该系统可以自动对车子进行run和stop的检测. package com.csdhsm.designpattem.dependence; /** * @Title: JeepCar.java * @Description: 吉普车 * @au

大话设计模式之依赖倒转原则

依赖倒转原则: 定义: 在大话中最重要的两句话是:抽象不应该依赖与细节,细节应该依赖于抽象.还有一句是:针对接口编程,不要对实现编程. 问题: 类A直接依赖类B.假如要将类A改为依赖C.则必须通过须要改动类A的代码来达成.但假设,类A是高级模块,负责业务逻辑:类B和类C是低层模块.负责主要的源自操作.这样改变A会给程序带来不必要的风险. 解决方式: 将类A改动为依赖接口I,类B和类C各自实现接口I,类A通过接口I来与类B和C发生纤细,则会大大减少改动A的几率. 基本思想: 用抽象构建框架.用事先

设计模式之依赖倒转原则(DIP)

1.概念 DIP:Dependency Inversion Principle 抽象不应当依赖于细节,细节应当依赖于抽象(说通俗点也就是要针对接口编程,不要针对实现编程:或者要依赖于抽象,不要依赖于具体). 2.为何叫"依赖倒转"? 传统的过程性系统的设计办法倾向于使高层次的模块依赖于低层次的模块:抽象层次依赖于具体层次.倒转原则则是把这个错误的依赖关系倒过来. 3.如何做到依赖倒转? 以抽象方式耦合是依赖倒转原则的关键.由于一个抽象耦合关系总要涉及到具体类从抽象类继承,并且需要保证在

设计模式之依赖倒转原则

抽象不应该依赖细节,细节应该依赖于抽象.说白了,就是要针对接口编程,不要对实现编程.可以用电脑的设计来理解,无论主板,CPU,内存,还是硬盘都是针对接口设计的.如果针对实现设计,内存就要对应到具体每个品牌的主板,就会出现换内存就需要把主板换掉的尴尬. 依赖倒转原则:1.高层模块不应该依赖低层模块,两个都应该依赖抽象. 2.抽象不应该依赖细节,细节应该依赖抽象. 那为什么要叫倒转呢?面向过程开发时,为了使得常用的代码可以复用,一般都会把这些常用代码写成许许多多函数的程序库,这样我们在做新项目的时候