• 关于类和接口


    类和接口的区别,去除语法层面,谈谈编程层面的意义。

    设计原则SOLID:

    S:单一职责(SRP),Single Responsibility Principle

    O:开-闭原则(OCP),Open-Closed Principle

    L:里氏替换(LSP),Liskov Substitution Principle

    I: 接口隔离(ISP),Interface Segregation Principle

    D:依赖倒置(DIP),Dependency Inversion Principle

     关于设计模式,经常会说面向接口编程,而面向接口编程,对应的是哪一个原则呢?

    关于里氏替换和依赖倒置,应该是属于同一种编程技巧的两种表现形式。

    如果要实现里氏替换,那边必须是依赖倒置的,如果遵循了依赖倒置,那么也实现了里氏替换原则

    看一下JDBC的代码:

    1. public class DriverManager {
    2. // Worker method called by the public getConnection() methods.
    3. private static Connection getConnection(
    4. String url, java.util.Properties info, Class caller) throws SQLException {
    5. Connection con = aDriver.driver.connect(url, info);
    6. return (con);
    7. }
    8. }
    9. public interface Driver {
    10. Connection connect(String url, java.util.Properties info)
    11. throws SQLException;
    12. }
    13. public interface Connection extends Wrapper, AutoCloseable {
    14. }

    驱动管理类,获取连接的方法,就是依赖倒置原则的实现,面向的接口编程,依赖抽象。

    抛开具体的设计模式,在看不同框架的源码时,一般他们都是遵循了面向接口编程的,也就是依赖倒置。在变量类型、方法返回类型、入参类型都是接口或者抽象类,这样就实现了依赖倒置,也就是依赖接口。 这样做的优点,就是可以有不同的实现类型,而不用改动高层次的逻辑。

    再谈谈类和接口在编程中存在的意义,接口或者抽象类,可以用来定义目标、方向,属于高层次的;面向对象的继承和多态,完成了将目标、方向转化为行动,而行动就是具体的实现类。目标只有一个,而行动可以有很多。这也许就是类和接口存在的意义吧。

    然而,在工作中需要根据具体的需求进行开发,也不用过度使用设计模式,为了使用而使用,需要自己把握。

  • 相关阅读:
    360杀毒卸载办法
    谈思生物医疗直播—可瑞生物CEO谢兴旺博士“TCR创新药的现状和展望”
    【CSS】CSS实现三角形(一)
    垃圾分类查询管理系统
    Rebex Total Pack R6.9 Crack
    JVM内存线程Dump
    JAVAEE初阶相关内容第八弹--多线程(初阶)
    【Azure API 管理】解决API Management添加AAD Group时遇见的 Failed to query Azure Active Directory graph due to error 错误
    中远麒麟堡垒机admin_commonuserSQL注入漏洞
    MySQL常用引擎有哪些?
  • 原文地址:https://blog.csdn.net/htydowd/article/details/132597171