文档章节

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

东湖畔新家
 东湖畔新家
发布于 2017/05/09 18:56
字数 436
阅读 2
收藏 0
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.csdn.net/zhengzhb/article/details/7296921

© 著作权归作者所有

东湖畔新家
粉丝 1
博文 170
码字总数 31582
作品 0
杭州
后端工程师
私信 提问
设计模式学习--面向对象的5条设计原则(转)

这几天重新看了一遍《大话设计模式》,发现果然有不同的感悟,而且自己也上网找了《敏捷软件开发—原则、模式与实践》一书来看,那本书的序言中有一段话我觉得很有道理:“美的东西比丑的东西...

幕三少
2013/08/18
0
0
小菜学设计模式——接口隔离原则

背景 本文标题为什么叫小菜学习设计模式,原因是本文内容主要是学习《大话设计模式》时的笔记摘要部分,当然,并不是记录书中小菜的学习过程,这个完全没有意义,而是指本人学习设计模式的成...

learn_more
2015/05/31
0
0
设计模式--总结

学习设计模式的好处: 学习设计模式最好的方式: 设计模式的本质目的: OO是原则,设计模式是具体方法和工具。 设计模式分类: 创建型模式(五种): 工厂方法模式、抽象工厂模式、单例模式、建造...

有钱有爱
2016/04/09
115
0
Android也架构之一:白话软件设计中的六大原则

要了解软件设计,了解整个架构,就必须学习软件设计中的六大原则。基于所有的设计模式都是建议于这些软件设计原则的基础上发展而来的。 1、单一职责原则(Single Responsibility Principle,...

理工男海哥
2012/08/19
0
1
我是怎样教媳妇面向对象编程的

简介 我老婆 Farhana 想要继续软件开发生涯(之前因为我们的第一个孩子出生,她不得不放弃)。我已经有了一些软件设计和开发的经验,所以这几天我就在试着帮助她学习OOD。 由于我早年在软件开...

凡程子
2013/01/09
56.3K
60

没有更多内容

加载失败,请刷新页面

加载更多

如何使用 rsync 备份 Linux 系统的一些介绍

备份一直是 Linux 世界的热门话题。回到 2017,David Both 为 Opensource.com 的读者在使用 rsync 备份 Linux 系统方面提了一些建议,在这年的更早时候,他发起了一项问卷调查询问大家,在 ...

Linux就该这么学
12分钟前
0
0
以太坊私有链搭建

https://blog.csdn.net/Blockchain_lemon/article/details/80589123

Moks角木
49分钟前
2
0
自律给我自信-为什么要自律

为什么要自律 混一天和努力一天 看不到任何差别 3天看不到任何变化 7天也看不到任何效果 但是 1个月后, 会看到话题不同 3个月后, 会看到气场不同 6个月后, 会看到距离不同 3年后, 会看到...

周大壮
49分钟前
4
0
读书replay计划说明

突然脑袋一闪,我有了这样一个主意:通过写博客的方式,将我阅读的书中的内容replay出来。 我一般会找着我感兴趣的书去读,一般也会读书中我感兴趣的章节,或者当下对我有用的章节,所以这个...

wanxiangming
51分钟前
1
0
CentOS7安装xrdp环境可实现远程桌面访问

CentOS7安装xrdp环境可实现远程桌面访问 2018-07-14 06:39:28 分类:运维 阅读(2051) 评论(0) 在"Ubuntu系统安装xrdp桌面客户端及实现远程连接桌面"文章中有分享过在Ubuntu系统中安装XRDP环境...

linjin200
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部