六大设计原则(四)ISP接口隔离原则(上)

本文探讨了接口隔离原则(ISP),强调接口应保持精简,避免过度臃肿。通过举例分析,指出当接口包含多个不必要方法时,会导致耦合性增加,不利于维护。并提供了一个关于星探寻找美女的类设计案例,说明如何通过接口细化降低耦合性。
摘要由CSDN通过智能技术生成

ISP的定义

  • 首先明确接口定义
    • 实例接口
      • 我们在Java中,一个类用New关键字来创建一个实例。抛开Java语言我们其实也可以称为接口。假设Person zhangsan = new Person();我们称Person类就是张三的接口类。
    • 类接口
      • Java中用interface定义的接口。
  • 其次明确隔离定义
    • 客户端不应该依赖他不需要的接口。
    • 类间的依赖关系应当建立在最小的接口上。
      • 首先第一种说明客户端依赖接口,依赖的接口不能过于臃肿,所以要进行细化。第二种定义也是要求接口进行细化,保持接口的纯洁。
      • 总结:建立单一接口,接口不要过分臃肿。接口要尽量细化,接口中要尽量少。
  • 接口隔离原则和单一职责原则
    • 明确单一职责原则是按照职责单一,是从业务逻辑角度来看。
    • 明确接口隔离原则是要求接口的方法要尽量的少。

ISP举例

聚合关系:空心棱形箭头,全体和部分的关系,与组合关系的区别是:组合关系彼此依靠,缺一不可,而聚合关系彼此之间是可以独立存在的。最明显的例子:人和车,人可以拥有车,但是不是必须的。车与轮子之间的关系:车必须拥有轮子。

  • 给出星探寻找美女的类图

file

  • 具体实现代码

  • 美女抽象接口:定了美女的标准

    package des.ISP;
    //美女抽象类public 
    interface IPrettyGirl {    
    //较好的面容    
    public void goodLooking();    
    //要有好的身材    
    public void niceFigure();    
    //要有气质    
    public void greatTemmperament();
    }
  • 美女实现类
package des.ISP;
//美女实现类
public class PrettyGirl implements IPrettyGirl {
   
    //名字
    private String  name;
    public  PrettyGirl(String name){
   
        this.name = name;

    }
    @Override
    public void goodLooking() {
   
        System.out.println("拥有较好的面貌");

    }

    @Override
    public void niceFigure() {
   
        System.out.println("拥有较好的身材");
    }

    @Override
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值