面向接口编程

面向接口编程

接口体现的规范与实现分离的原则,使用接口可以降低模块之间的耦合性,可以提高系统的可拓展性和可维护性。

1. 简单工厂模式

// 1. Computer 只是组合了 Output 接口,并没有耦合具体的实现类
// 2. 通过 OutputFactory 可以构造具体的实现类

interface Output {
    void print();
    void scan();
}

class Printer implements Output {
    //... ...
}

class BetterPrinter implements Output {
    //... ...
}

class Computer {
    private Output output;
    
    public Computer(Output output) {
        this.output = output;
    }

    // 接下来就可以使用 output 接口中定义的相关方法
    // ... ...
}

class OutputFactory {
    public static Output getOutput() {
        return new Printer();    // 可以自定义实现的子类
    }
}

2. 命令模式

interface Process {
    void process (int[] target);    //处理 int[] 
}

class Student {
    private int[] scores;

    public void average(int[] target, Process process) {    // 这是求平均数处理
        process(target);
    }

    public void sum(int[] target, Process process) {    // 这是求和处理
        process(target);
    }
}
posted @ 2017-07-17 09:52  白清风  阅读(143)  评论(0)    收藏  举报