zoukankan      html  css  js  c++  java
  • 面向接口编程详解!

    今天同学问我我一个问题,他问我面向接口编程有什么好处?

    好吧!首先要说接口的含义:

    1、它是一个规则的集合,它规定了实现该接口的类或者接口要遵守这些规则。

      换句话说,在现实世界中他体现了(如果你是.....你必然会......)这样的理念,比如说我定义了一个Person接口,在该接口中有一个抽象方法eat,那么就可以解释为:如果你是一个人你必然会吃。

    2、接口是对同类事物的共同特点的抽取

      例如,在我眼中,我是一个人,我和一头猪有着本质的区别。但是在一个动物学家的眼里,我和一头猪没有什么区别,我们都属于动物,也就是说动物学家在研究人和猪的行为时。他们不会对我们进行区别对待,我们都属于IAnimal接口。

      现在换了一个遗传学家,情况又不同了,因为生物都能遗传,所以在他眼里,我不仅和猪没区别,和一只蚊子、一个细菌、一颗树、一个蘑菇乃至一个SARS病毒都没什么区别,因为他会认为我们都实现了IDescendable这个接口(注:descend vi. 遗传)。

    好了那么现在面向接口编程有什么好处呢?

    首先我们要明白项目中的层次关系和依赖关系,每层不是直接向上层提供服务,而是通过每层定义的接口,向上暴漏其接口的功能,上层对下层仅仅是接口的依赖,而不是具体依赖某一个类。

    1、系统的灵活性得到提升,便于维护和拓展。

      当下层需要改变时,只要接口及接口的功能不变,上层不用做修改。

      有时候甚至我们可以完全修改下层实现。就比如我不想用u盘了。我想用移动硬盘,那你只用把u盘拔了,插上移动硬盘就行了。

    2、松耦合

     

     

    参考:http://www.cnblogs.com/leoo2sk/archive/2008/04/10/1146447.html

  • 相关阅读:
    Docker部署Kafka以及Spring Kafka操作
    Docker本地镜像上传到阿里云仓库
    Gitlab-CI +Docker + Docker-Compose构建可持续集成java项目的镜像
    Ubuntu安装Gitlab Runner
    Linux安装java环境和maven
    Gitlab CI/CD任务一直处于pending
    C语言中#undef作用
    关于a[i]++和a[i++]说明
    keil4编译Error: User Command terminated, Exit-Code = 1解决
    在keil中添加stc系列单片机型号(模型)方法
  • 原文地址:https://www.cnblogs.com/zyh1994/p/5534368.html
Copyright © 2011-2022 走看看