欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

面向接口编程

程序员文章站 2022-04-24 08:01:17
面向接口编程 这里要举一个很简单的例子来介绍面向接口编程。 我这次花时间记录下这个例子,是想提醒自己平时写代码的时候不要为了完成任务而敲代码,仅仅实现功能的代码没用的。 我通过这段时间的实习,总结出自己写代码的一些不足: 1.接到需求之后,只是考虑采用什么技术来实现,一想到就开始敲代码,啥也不考虑了 ......

面向接口编程

这里要举一个很简单的例子来介绍面向接口编程。

我这次花时间记录下这个例子,是想提醒自己平时写代码的时候不要为了完成任务而敲代码,仅仅实现功能的代码没用的。

我通过这段时间的实习,总结出自己写代码的一些不足:

1.接到需求之后,只是考虑采用什么技术来实现,一想到就开始敲代码,啥也不考虑了。其实要考虑的东西有很多,比如:性能,日志,通用性,可读性

比如性能方面:hashmap的性能比hashtable就要强很多,hashtable的优势只是线程安全,但并发情况下往往用currenHashMap,它并发性高于hashmap,性能高过hashtable

比如日志方面:得养成打日志的习惯,举个上周五的例子,线上的邮件系统炸了,结果服务器上查日志根本看不出哪里出问题,我又得回来本地测试环境找问题,这就是没养成打日志习惯的弊端

通用性:面向接口编程就是实现通用编程的一个方法,待会下面会放出一个例子

可读性:方法的文档注释,命名规范等等(优秀的代码,别人单看看代码就能熟悉整个业务流程,所以命名很重要)

 

接下来,言归正传,下面举个面向接口编程的例子:

package com.xiongda.interfacecode;

/**
 * 
 * @author xiongda
 * @date 2018年8月4日
 * @description 面向接口编程例子
 *  主机 连接外设进行工作 
 *  键盘 :插入主机进行工作 
 *  鼠标 :插入主机进行工作
 */
interface OuterDevice {
    void work();
}

class Keyboard implements OuterDevice {
    public void work() {
        System.out.println("键盘开始工作!");
    }
}

class Mouse implements OuterDevice {
    public void work() {
        System.out.println("鼠标开始工作!");
    }
}

class Host {
    public void connectTo(OuterDevice outerDevice) {
        outerDevice.work();
    }
}

public class Device {
    public static void main(String[] args) {

        Host host = new Host();
        OuterDevice keyboard = new Keyboard();
        host.connectTo(keyboard);
        OuterDevice mouse = new Mouse();
        host.connectTo(mouse);
    }
}

键盘和鼠标都属于外设,需要连接主机进行工作。所以键盘和鼠标这些应该作为同一类,而不是一堆方法,连接鼠标,连接键盘。。。。。

所以这时候就需要定义一定的规范,而接口就是一种规范。

例子很简单,一看就明白,但我希望自己能够在平时敲代码的时候养成这种思想,考虑通用编程,而不是等一堆东西凑起来的时候才发现这里可以改成通用的。

(新的8月份,好好努力!)