通过生活中例子模拟java面向接口编程实例

包括如下接口和类:

 

举例,比如一台电脑,主板上的PCI插槽就可以理解为现实中的接口
你可你把声卡,显卡,网卡都插在PCI插槽上,而不用担心那个插槽是专门插哪个的
原因是做主板的厂家和做各种卡的厂家都遵守了统一的规定 包括尺寸,排线等等
但是各种卡的内部实现结构是不一样的.

下面具体模拟:

 

通过生活中例子模拟java面向接口编程实例

package com.test;

/**
 * 定义PCI接口,定义主板PCI插槽规范
 * @author yanerkang
 *
 */

public interface PCI {

	void start();

	void stop();

}

package com.test;

/**
 * 网卡实现PCI接口规范
 * @author yanerkang
 *
 */
public class NetworkCard implements PCI {

	public void start() {
		System.out.println("Send...");
	}

	public void stop() {
		System.out.println("Network stop!");
	}

}

package com.test;
/**
 * 显卡实现PCI接口规范
 * @author yanerkang
 *
 */
public class GraphicCard  implements PCI{

	public void start() {
		System.out.println("Display Graphic...");
	}

	public void stop() {
		System.out.println("Display Graphic stop!");
	}

}

package com.test;

/**
 * 声卡实现PCI接口规范
 * @author yanerkang
 *
 */
public class SoundCard implements PCI {
	public void start() {
		System.out.println("Du du...");
	}

	public void stop() {
		System.out.println("Sound stop!");
	}
}

package com.test;

/**
 * 主板类
 * @author yanerkang
 *
 */
public class MainBoard {

	 /**
	  * 通过这个方法,主板上可以插入任何实现PCI接口规范的卡
	  *
	  * @param pci 参数类型为接口,任何实现接口的类都可以传进来.
	  */
	public void usePCICard(PCI pci) {
		pci.start();
		pci.stop();
	}

}

package com.test;

public class Assembler {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		MainBoard mb=new MainBoard();
		//在主板上插入网卡
	    PCI nc=new NetworkCard();
	    mb.usePCICard(nc); 

	   //在主板上插入声卡
	    PCI sc=new SoundCard();
	    mb.usePCICard(sc); 

		//在主板上插入显卡
	    PCI gc=new GraphicCard();
	    mb.usePCICard(gc); 

	}

}

输出:

 Send...
Network stop!
Du du...
Sound stop!
Display Graphic...
Display Graphic stop!

 

资源下载地址:http://download.csdn.net/detail/5iasp/6825325 (不需要积分)

时间: 2024-08-31 20:19:16

通过生活中例子模拟java面向接口编程实例的相关文章

WF4.0实战(二十二):一个实际生活中状态机的例子

这是实际生活中的一个状态机的例子:"门".这个例子是Mebyon Kernow写的,使用状态机对门的状态进行控制,我觉得是学习WF4.0中 状态机的好例子.所以,简单的翻译了他这篇文章.希望对你学习WF4.0的状态机有所帮助.以下是正文.原文是:A practical State Machine example 现在,状态机的活动已经发布在Codeplex上面了(详见:http://wf.codeplex.com/).我找出一个经常使用的例子.用这个例子用来演 示如何使用状态机来控制一

做一个饲养员给动物喂食物的例子体现JAVA中的面向对象思想,接口(抽象类)的用处

做一个饲养员给动物喂食物的例子体现JAVA中的面向对象思想,接口(抽象类)的用处 interface Animal{             //动物的接口    public void eat(Food food); //接口中只有抽象的方法和静态常量!这里void前面省略了abstract.同样,变量可以省略static final} class Cat implements Animal //一种动物类:猫  {      public void eat(Food food) //这里是对

众包中空间任务具体指什么,能不能举个例子解释一下,从生活中的实例说一下,不要抽象的

问题描述 众包中空间任务具体指什么,能不能举个例子解释一下,从生活中的实例说一下,不要抽象的 2C 众包中空间任务具体指什么,能不能举个例子解释一下,从生活中的实例说一下,不要抽象的

python代码简单模拟Java中的MVC设计

python代码简单模拟Java中的MVC设计 包括两个文件: 一. mymvc.py import tornado.ioloop import tornado.web #访问地址 http://127.0.0.1:9870/main?ywdm=06&num1=10&num2=200 class TestClassA: def sub(self,a,b): return a-b def add(self,a,b): return a+b def chen(self,a,b): return

盘点生活中的传感器 未来发展空间巨大

利用自然界物理或生物特性来探测外界信息,感测元件在科技进步下不断发展,结合人类在科学.物理.医疗上所累积的知识,如今感测器已经不只是人类用来探索知识的一门工具,更能结合通讯.物联网.云端巨量资料的运算,提供生活中更便利的服务. 观察目前感测技术,发展已经成熟的有光应用.声音.动态.压力等感测器,尚在开发阶段的是生物细胞.脑波等感测器.将这些感测器结合设计出应用装置导入生活中,开发出能独立判断并主动提供决策服务的智慧装置,如果用人类的五感来作对照感测是如何发生的: 纳米科技的进步也使感测器更精准及

PHP面向接口编程 耦合设计模式

php教程面向接口编程 耦合设计模式 关于接口的理解. 接口从更深层次的理解,应是定义(规范,约束)与实现(名实分离的原则)的分离. 我们在一般实现一个系统的时候,通常是将定义与实现合为一体,不加分离的,我认为最为理解的系统设计规范应是所有的定义与实现分离,尽管这可能对系统中的某些情况有点繁烦. 接口的本身反映了系统设计人员对系统的抽象理解. 接口应有两类:第一类是对一个体的抽象,它可对应为一个抽象体(abstract class): 第二类是对一个体某一方面的抽象,即形成一个抽象面(inter

我在微软亚洲研究院生活中所接触的语言

自上次<回首往事:十八年的语言分支>一文后,全民编程计划也算是正式启动开来,其实前几次的文章(详见底部的推荐文章)确实为我们分享出了很多的道理.从中我们看到了语言的"叛逆思想".从中我们对一些语言有了更深入的认知.从中我们也能体会到身为程序员的各种生活. 肖伯纳有句名言是这么说的'人生不是一支短短的蜡烛,而是一支暂时由我们拿着的火炬.我们一定要把它燃得十分光明灿烂,然后交给下一代的人们'.我们在之前的文章提到过,每个人的经历本身就一个"瑰宝",把这些经历

BLOCKED,WAITING,TIMED_WAITING有什么区别?-用生活的例子解释

翻译原文地址:https://dzone.com/articles/difference-between-blocked-waiting-timed-waiting-e BLOCKED,WAITING和TIMED_WAITING是很重要的线程状态,但是经常对我们造成困扰.如果需要分析线程dump必须要对其有一定的理解.使用生活的例子,本文将每个状态变成了简单的例子. 与正式的Java文档定义相比,任何让人费解的概念都可以用简单的例子来理解.如果用真实生活中的例子,就更好理解了.我想分享一些真实生

.NET项目开发—浅谈面向接口编程、可测试性、单元测试、迭代重构(项目小结)

阅读目录: 1.开篇介绍  2.迭代测试.重构(强制性面向接口编程,要求代码具有可测试性) 2.1.面向接口编程的两个设计误区 2.1.1.接口的依赖倒置 2.1.2.接口对实体的抽象  2.2.迭代单元测试.重构(代码可测试) 2.2.1.LINQ表达式对单元测试的影响  1]开篇介绍 最近一段时间结束了一个小项目的开发,觉得有些好东西值得总结与分享,所以花点时间整理成文章: 大多数情况下我们都知道这些概念,面向接口编程是老生常谈的话题了,有几年编程经验的都知道怎么运用:单元测试其实在前几年不