Skip to content

Design Analysis

Java的框架设计

结构理解

interface extends interface

interface B extends interface A:

  • 对原有接口 A 能力的扩展
  • 接口B有实现类, 在接口 A的实现类中
  • 一般会看到 A 接口的引用
  • 目的是保留 A 本身的能力
interface A {
    void doSomething();
}

/* some class implementation A */

interface B extends A {
    void doSomethingElse();
}

class X implements B {
    private A a;

    public void a() {
        a.doSomething();
    }

    public void doSomethingElse() {
        // do something
    }
}

class abstract_class interface

interface: 负责定义完整的行为

abstract_class implementation interface

  • 通用能力的实现
  • 方法之间通用逻辑的耦合
  • 定义出钩子

class extends abstract_class

  • 考虑是对接口方法的实现
  • 还是对钩子方法的实现