学习接口设计原则☞接口隔离原则

package com.mode;
/*
 接口中的方法尽量少。也就是说,我们要为各个类建立专用的接口,
 而不要试图去建立一个很庞大的接口供所有依赖它的类去调用。
 本例子中,将一个庞大的接口变更为3个专用的接口所采用的就是接口隔离原则。
 
 采用接口隔离原则对接口进行约束时,要注意以下几点:
 	1.接口尽量小,但是要有限度。
 	2.为依赖接口的类定制服务,只暴露给调用的类它需要的方法,
 	  它不需要的方法则隐藏起来。只有专注地为一个模块提供定制服务,
 	  才能建立最小的依赖关系。
 	3.提高内聚,减少对外交互。使接口用最少的方法去完成最多的事情。
 */
interface I1 {
	public void method1();
}
interface I2 {
	public void method2();
	public void method3();
}
interface I3 {
	public void method4();
	public void method5();
}
class A {
	public void depend1(I1 i) {
		i.method1();
	}
	public void depend2(I2 i) {
		i.method2();
	}
	public void depend3(I2 i) {
		i.method3();
	}
}
class B implements I1, I2 {
	public void method1() {
		System.out.println("类B实现接口I1的方法1");
	}
	public void method2() {
		System.out.println("类B实现接口I2的方法2");
	}
	public void method3() {
		System.out.println("类B实现接口I2的方法3");
	}
}
class C {
	public void depend1(I1 i) {
		i.method1();
	}
	public void depend2(I3 i) {
		i.method4();
	}
	public void depend3(I3 i) {
		i.method5();
	}
}

class D implements I1, I3 {
	public void method1() {
		System.out.println("类D实现接口I1的方法1");
	}
	public void method4() {
		System.out.println("类D实现接口I3的方法4");
	}
	public void method5() {
		System.out.println("类D实现接口I3的方法5");
	}
}
public class Client {
	public static void main(String[] args) {
		A a = new A();
		a.depend1(new B());
		a.depend2(new B());
		a.depend3(new B());

		C c = new C();
		c.depend1(new D());
		c.depend2(new D());
		c.depend3(new D());
	}
}

原文: http://blog.youkuaiyun.com/zhengzhb/article/details/7296921

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值