【架构师之路】-【01设计模式】-05设计原则之接口分离原则

本文介绍了接口分离原则(ISP),一种面向对象设计原则,旨在减少不必要的接口实现,提高代码的灵活性和可维护性。通过示例对比了单一接口与多个特定接口的优缺点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

定义:使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口

 

举例说明:接口A需要实现方法a、b、c,具体实现类B实现方法a、b,实现类C实现a、c。所以B,C需要实现它们不需要的方法。

public interface A {
	public void function1();
	public void function2();
	public void function3();
}

public class B implements A{
	public void function1(){
		system.out.print("需要实现的方法1");
	}
	public void function2() {
		system.out.print("需要实现的方法2");
	}
	
	public void function3() {
		system.out.print("不需要实现的方法3;但也必须实现");
	}
}

public class C implements A{
	public void function1(){
		system.out.print("需要实现的方法1");
	}
	public void function2() {
		system.out.print("不需要实现的方法2;但也必须实现");
	}
	
	public void function3() {
		system.out.print("需要实现的方法3");
	}
}


以上代码实现造成了方法的多余;B类中不需要实现 方法3;但也必须实现 ;C类中不用实现方法2;但也必须实现。所以改造一下呢?

public interface A1 {
	public void function1();
	public void function2();
	
}

public interface A2 {
	public void function1();
	
	public void function3();
}

public class B implements A1{
	public void function1(){
		system.out.print("需要实现的方法1");
	}
	public void function2() {
		system.out.print("需要实现的方法2");
	}
	
	
}

public class C implements A2{
	public void function1(){
		system.out.print("需要实现的方法1");
	}
	
	public void function3() {
		system.out.print("需要实现的方法3");
	}
}

将接口分为两类;A1和A2;分别包含方法f1,f2    和f1,f3;B和C分别实现A1和A2接口。不用实现多余的方法。

 

最后总结一下:接口分离原则 就是子类 不用实现 多余的接口方法

优点:子类不用实现过多的接口;

缺点:接口分得过细过多,导致系统复杂。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值