寂然解读设计模式 - 接口隔离原则


I walk very slowly, but I never walk backwards 

设计模式原则 - 接口隔离原则


寂然

大家好,我是寂然,本节课呢,我来给大家介绍设计模式原则之接口隔离原则,话不多说,我们直接进入正题,老规矩,首先带大家了解一下接口隔离原则的官方定义,并作一个解释,然后我们通过案例代码来具体分析

官方定义

接口隔离原则(Interface Segregation Principle),又称为ISP原则,官方定义为:

  1. Clients should not be forced to depend upon interfaces that they don’t use.
    (客户端不应该依赖它不需要的接口)
  2. The dependency of one class to another one should depend on the smallest possible interface. (类间的依赖关系应该建立在最小的接口上)
基本介绍

其实通俗来理解就是,不要在一个接口里面放很多的方法,这样会显得这个类很臃肿不堪。接口应该尽量细化,一个接口对应一个功能模块,同时接口里面的方法应该尽可能的少,使接口更加轻便灵活。

案例演示 - 市场风云

为了让大家更好的理解接口隔离原则,我们通过一个案例来详细解析

假设有这样一个案例场景,现在有一个接口knife,给定他有三个能力,可以切苹果,切番茄,切土豆,两个类张厨师,李厨师分别具有这些能力,有一个水果店类,假设是需要张师傅来切苹果和切番茄,而另一个蔬菜店类需要李师傅来切番茄和切土豆

OK,明确了需求之后,那相关的基本定义代码如下图所示

// 定义接口knife
interface Knife {
   
    //切苹果的能力
    void cutApple();

    //切番茄的能力
    void cutTomato();

    //切土豆的能力
    void cutPotato();

}

//张厨师类
class CookZhang implements Knife {
   

    @Override
    public void cutApple() {
   
        System.out.println("张厨师正在切苹果");
    }

    @Override
    public void cutTomato() {
   
        System.out.println("张厨师正在切番茄");
    }

    @Override
    public void cutPotato() {
   
        System.out.println("张厨师正在切土豆")

你可能感兴趣的:(设计模式,-,深度解析,设计模式,java,编程语言)