揭秘什么是面向接口编程
先用一个案例来给大家说明一下面向接口编程。揭秘
案例:有一个电脑类(Computer),什面电脑除了有基本的向接开机关机功能外,还有连接任何外接设备的口编功能,比如能电脑能连接外置键盘(Keyboard),揭秘鼠标(Mouse),什面投影仪(Projecter)等很多外置设备,向接请用代码来实现该需求;

实现步骤如下:
首先需要创建三个类Keyboard,口编Mouse,揭秘Projecter即键盘、什面鼠标、向接投影仪类,口编并且都有自己的揭秘功能
其次需要创建一个Computer类,类里面有开机(openComputer)方法,什面也有关机(closeComputer)方法,向接而且还有三个接收外置设备的方法connectKeyboard,connectMouse,connectProjecter,代码如下:
// 键盘类 public class Keyboard { public void work(){ System.out.println("外置键盘可以用来输入数据"); } } // 鼠标类 public class Mouse{ public void work(){ System.out.println("鼠标方便操作人员打开一些程序"); } } // 投影仪类 public class Projecter{ public void work(){ System.out.println("投影仪把屏幕投影到墙上放大"); } } // 定义笔记本类 // 功能: 开机,关机,接收外置设备 键盘 鼠标 投影仪 并让其工作 public class Computer { //开机 public void openComputer(){ System.out.println("笔记本开机"); } //关机 public void closeComputer(){ System.out.println("笔记本关机"); } //连接外置键盘 并让其输入 public void connectKeyboard(Keyboard k){ k.work(); } //连接鼠标 并让其点击 public void connectMouse(Mouse m){ m.work(); } //连接投影仪 并让其投影 public void connectProjecter(Projecter p){ p.work(); } }现在这个需求我们就已经做完了。但是假如此时一些电脑配件的生产商又生产出了一种新设备“U盘”用来做外置存储的,那么这时候我们除了需要再写一个U盘类之外,还需要在Computer类中加一个连接U盘的方法(这体现在现实生活中就是把原来已经制作好的电脑解体重新改装出一个用来连接U盘的口子),增加的b2b供应网代码如下:
// U盘类 public class UDisk{ public void work(){ System.out.println("U盘可以用来存储数据"); } } // 定义笔记本类 // 功能: 开机,关机,接收外置设备 键盘 鼠标 投影仪 并让其工作 public class Computer { //开机 public void openComputer(){ System.out.println("笔记本开机"); } //关机 public void closeComputer(){ System.out.println("笔记本关机"); } //连接外置键盘 并让其输入 public void connectKeyboard(Keyboard k){ k.work(); } //连接鼠标 并让其点击 public void connectMouse(Mouse m){ m.work(); } //连接投影仪 并让其投影 public void connectProjecter(Projecter p){ p.work(); } //连接U盘 并让其存储 public void connectUDisk(UDisk u){ u.work(); } }对于U盘新设备,我们经过改装电脑,可以让电脑连接使用了。但是可恨的是 就在此时,电脑配件的生产商又生产出了外置音响,我们快要疯了,因为我们不得不又要把电脑拆了,重新改装出一个连接外置音响的口子。这时候我们并没有着急去改装自己的电脑,因为万一自己改装完了之后 电脑配件生产商又生产出了其他的外置设备呢?难道我们就一直改装下去吗?那究竟有没有一种解决办法呢??
答案是肯定的,接口的出现很好的解决了这一问题,我们向电脑配件生产商提供了一套规范 名叫USB,告诉他们以后再生产任何的设备都要留出USB形状的对接口,那么我们的电脑只需要留出一个USB形状的对接口,用来连接任何具有该形状对接口的设备即可,改进代码如下:
// 定义笔记本类 // 功能: 开机,关机,接收任何USB设备 public class Computer { //开机 public void openComputer(){ System.out.println("笔记本开机"); } //关机 public void closeComputer(){ System.out.println("笔记本关机"); } //连接USB设备 并让其进行相应的工作 public void connectUSB(USB device){ //父接口的b2b信息网引用可以接收任何的子类对象,多态! device.work(); //此处运行的是子类的重写后的work方法 } } // 自定义的USB接口 // 规范 USB设备能运行并完成相应的功能 public interface USB { public abstract void work(); } // 键盘类 public class Keyboard implements USB{ public void work(){ System.out.println("外置键盘可以用来输入数据"); } } // 鼠标类 public class Mouse implements USB{ public void work(){ System.out.println("鼠标方便操作人员打开一些程序"); } }经过这样的设计,我们的电脑只要留出用来连接USB设备的对接口就可以了,不管生产商们生产任何的外接设备,只要他们按照USB接口规范来,他们都能够接入到电脑上去,这样就极大的增强了电脑的拓展性,以及设备的可维护性。
经过这个案例,大家应该明白面向接口编程给我们带来的便利了吧。面向接口编程就是增强了代码的拓展性,而接口就是体现的一种规范,也是亿华云计算提现的一种拓展思想。
相关文章
电脑重装Win10系统操作指南(简明易懂的重装Win10系统教程)
摘要:重装操作系统是电脑维护和优化的基本技能之一,本文将详细介绍如何以电脑重装Win10系统,帮助读者解决电脑系统问题,提高电脑性能。一、备份重要文件和数据... 重装操2025-11-05
Netty基础招式——ChannelHandler的优秀实践
今天,我们继续学习Netty逻辑架构中的另一个核心组件ChannelHandler和ChannelPipeline。如果说线程模型是Netty的 “核心内功”,那么ChannelHandler就是Ne2025-11-05
环境:springboot2.2.10.RELEASE自定义请求匹配希望根据请求中header[x-token]的不同值调用不同的接口。接口请求地址相同,根据不同的header信息调用不同的执行方法。2025-11-05
调试、诊断子线程最直接的方式就是像调试、诊断主线程一样,但是无论是动态开启还是静态开启,子线程都不可避免地需要内置一些相关的非业务代码,本文介绍另外一种对子线程代码无侵入的调试方式,另外也介绍一下通过2025-11-05华硕B150M-Plus性能评测与推荐(一款稳定可靠的主板选择,华硕B150M-Plus的性能与功能介绍)
摘要:华硕B150M-Plus是一款高性能的微ATX主板,适用于普通家庭和办公室用户。其稳定性和可靠性备受用户好评,并且配备了丰富的扩展接口和功能。本文将从性能、功能、接口等多个方面对华...2025-11-05
Sourcegraph 正计划将其通用代码搜索平台扩展到云端,并在此过程中对 GitHub 和 GitLab 的数百万公共仓库进行索引,这样一来任何人都可以通过搜索找到它们。Sourcegraph 此2025-11-05

最新评论