• 面向接口编程


    面向接口编程

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

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

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

    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月份,好好努力!)

  • 相关阅读:
    motan rpc
    etcd:从应用场景到实现原理的全方位解读 转自infoq
    微信扫码登录实现原理
    商家历史数据查询及下载
    zookeeper No route to host
    hadoop 一些命令
    spring cloud 转
    Lombok 安装、入门
    Prometheus
    kvm虚拟机静态和动态迁移
  • 原文地址:https://www.cnblogs.com/xtuxiongda/p/9420483.html
Copyright © 2020-2023  润新知