zoukankan      html  css  js  c++  java
  • OpenJDK源码研究笔记(十四):三种经典的设计方法,接口,接口-抽象类-具体实现类,接口-具体实现类

    在研究OpenJDK源码过程中,我发现常用的设计方法就是2种:接口,接口-抽象类-具体实现类 。

    在一些其它开源框架和业务开发中,经常存在着第3种设计,接口-具体实现类。

    1.只有接口,没有实现类。

       定义接口,制定标准。

       在Java中,这个最典型的案例是JDBC的API的设计。

       Connection、Statement、PreparedStatement、CallableStatement、ResultSet等都是接口,没有任何实现方法。

       这些接口就是一个标准,具体的实现,都是由数据库厂商自行实现。

    2.接口-抽象类-具体实现类。

       定义接口,确定系统架构。

       通过抽象实现接口,实现复用。

       通过具体实现类,提供面向用户的API。

       在Java中,这个最典型的案例是集合框架I的设计。

       定义Collection、List、Set、Map接口,然后有AbstractCollection、AbstractList、AbstractMap、AbstractSet等抽象实现,具体实现类ArrayList、LinkedList、LinkedHashSet、HashMap等,是在抽象类的基础上的具体实现。

      第三方,如果需要实现自定义的集合,可以单独实现接口,或者继承抽象类和具体实现类来实现,从而扩展JDK自带的集合功能。

      当然,第三方,也可以完全自定义自己的集合框架。

    3.接口-具体实现类。

      有接口和具体实现类,没有抽象类的情况,在OpenJDK源码中比较少见。

      但是我们在实际开发中,有时会没有接口的抽象实现。

      比如Java Web开发中,我们根据业务逻辑定义了系统的一些接口,比如系统内部的CRUD接口,系统之间的通信接口,我们完全可以根据需要,直接实现接口即可。

      没有抽象类,通常是只需要一个具体实现。

      或者,一个接口的通信双方,各自有自己的一套实现方式。

    小结

    常用的设计方法,就那么多。掌握那些经典的常见的方法,其它设计方法就很容易理解了。

    接口、抽象类、实现类、设计模式,诸如此类,最终还是归结到面向对象。

    在实践中,加深对面向对象的理解,诸如设计模式、设计方法等很多高级货,自然就理解了。

    相关阅读

    我的CSDN博客专栏  OpenJDK源码研究笔记

    OpenJDK源码研究过程中整理的学习笔记。 OpenJDK是GPL许可(GPL-licensed)的Java平台的开源实现。

    原文参见http://FansUnion.cn/articles/3107(小雷网-FansUnion.cn)

  • 相关阅读:
    Linux_Rsync远程同步备份服务器
    Linux_Rsync远程同步备份服务器
    Linux_VMWare12 Install RHEL7
    Linux_VMWare12 Install RHEL7
    Linux_SquidProxyServer代理服务器
    Linux_SquidProxyServer代理服务器
    Linux_LAMP 最强大的动态网站解决方案
    Ozone Native ACL的应用
    Ozone Audit Log解析工具的应用
    Ozone数据探查服务Recon2.0设计
  • 原文地址:https://www.cnblogs.com/qitian1/p/6463465.html
Copyright © 2011-2022 走看看