在oop中有一种设计原则是面向接口编程,面向接口编程有很多好处,具体百度一大片,我来谈一下具体的使用中的一些不成熟的见解!!
首先面向接口编程可以消除类之间的依赖关系,使得业务只依赖接口。
这样有什么好处呢?
这样的好处大大的,比如说我们声明一个car的接口,我们对车有以下行为,我们可以开车,洗车,推车,修车,拆车等等,
具体用代码实现:
package com.panther.dong...
分类:
编程语言 时间:
2015-08-09 20:45:53
阅读次数:
156
面向接口的jdk动态代理(spring默认代理)
package com.yc.advice;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.Date;
public class Log...
分类:
其他好文 时间:
2015-08-07 16:17:03
阅读次数:
87
单一职责原则告诉我们实现类要职责单一;里氏替换原则告诉我们不要破坏继承体系;依赖倒置原则告诉我们要面向接口编程;接口隔离原则告诉我们在设计接口的时候要精简单一;迪米特法则告诉我们要降低耦合。而开闭原则是总纲,他告诉我们要对扩展开放,对修改关闭。单一职责原则(SingleResponsibilityP...
分类:
其他好文 时间:
2015-08-02 16:39:58
阅读次数:
167
前面已经介绍了两个原则
开放封闭原则
单一职责原则
今天我们再来看看另外一个原则:依赖倒置原则,他包含两个方面
A.高层次的模块不应该依赖于低层次的模块,他们都应该依赖于抽象。
B.抽象不应该依赖于具体,具体应该依赖于抽象。
其实这两句话总结起来说就是要依赖域抽象。在java中说白了就是要面向接口编程。
下面我们举个经典的例子:现在汽车很普遍,学了一个驾照大部分车都能开。但是你有没有...
分类:
编程语言 时间:
2015-07-27 21:00:31
阅读次数:
194
里氏替换原则是,同组的有类的两个子类,在使用子类A这个地方(方法/属性)您可以使用子类B代替.对于面向接口编程,我只需要确保同样的行为代码;基类的所有子类必须全部实现,换过来,子类的方法基类不一定都有;如果:有一个基类Base;其子类是Concrete;那么method(Base b)的调用能够转换...
分类:
其他好文 时间:
2015-07-03 20:29:27
阅读次数:
113
1、 Spring 架构图
(1)核心容器:包括Core、Beans、Context、EL模块。
Core模块:封装了框架依赖的最底层部分,包括资源访问、类型转换及一些常用工具类。
Beans模块:提供了框架的基础部分,包括反转控制和依赖注入。其中Bean Factory是容器核心,本质是“工厂设计模式”的实现,而且无需编程实现“单例设计模式”,单例完全由容器控制,而且提倡面向接口编程,而非面...
分类:
编程语言 时间:
2015-07-03 10:35:06
阅读次数:
168
为了程序更好的维护和扩展,在面向对象思维的世界里,首先是面向接口编程,然后我们应该把做什么和怎么做进行分离。
下面我将用一个开晚会的例子来演示一下,最终达到的效果是:工厂+反射+配置文件实现程序的灵活应用。会具体说明一下这个过程是怎么来的,明白了这个,就会对反射和配置文件的结合更加深刻一些。
想要实现的功能是:晚会有一个唱歌、舞蹈、小品的节目单,具体各个节目的表演者只需要一个就...
分类:
编程语言 时间:
2015-07-02 19:30:54
阅读次数:
145
Spring能有效地组织J2EE应用各层的对象。Action?Service?DAO?,都可在Spring的管理下有机地协调、运行。Spring将各层的对象以松耦合的方式组织在一起,对象与对象之间没有直接的联系,各层对象的调用完全面向接口。当系统需要重构时,代码的改写量将大大减少。Spring的核心...
分类:
编程语言 时间:
2015-07-02 15:25:29
阅读次数:
139
【1】.NET泛型解析(上)【2】.NET泛型解析(下)【3】.NET可变性解析(协变和逆变)【4】.NET委托解析【5】.NET解析(异步委托)【6】.NET解析(反射)【7】.NET解析之线程【8】.NET解析(面向接口编程)【9】.NET解析之CLR内存处理机制【10】.NET解析之CLR垃圾...
分类:
Web程序 时间:
2015-06-30 10:21:21
阅读次数:
121