• 边界


    程序中的边界就是你的代码和其他代码的分界线。包含两个部分,一个是你是接口提供者,如何提供数据;另一个你是接口使用者,如何使用数据。

    1.接口提供者

          写接口给别人使用时,都会使用对象来传递数据,但有些传递数据的对象是存在问题的。例如:List、Map等,如果我们使用这些数据结构返回数据,使用者可以使用这些数据结构的某些方法修改数据,例如List有add、remove等方法,使用者也可以使用,这就产生了风险,使用者可以窥探我们返回的数据。

          一般的解决方法是定义一个新类,包装我们返回的数据。即在类中私有化数据结构,提供公共的某些获取方法。举例如下。

    public class ResultClass {
        private List<String> data;
    
        public String getByIndex(int index) {
            return data.get(index);
        }
    }

    2. 接口使用者

          很多时候,我们都会遇到,我们要使用的接口还没开始编码或还没完成,但我们又不能一直等。这时,我们就需要先设计出我们需要接口提供的功能,以及自己定义接口返回的数据,后面我们使用接口的地方都会使用我们前面自己定义的类。当接口完成后,我们再写一个适配器类,完成第三方接口和我们已经定义的接口需要完成的功能类的整合。本质上就是使用设计模式中的适配器模式。举例如下。

    interface API {
        void sayHello(int type);
    }
    
    public class APIImpl implements API {
        APIAdapter api;    
    
        void sayHello(int type) {
            api = APIAdapter(type);
            api.sayHello();
        }
    }
    
    public class APIAdapter implements API {
        ConcreteAPI api;
    
        APIAdapter(int typeId) {
            if(typeId == 1) {
                api = new APIByEnglish();
            } else if(typeId == 2) {
                api = new APIByChinese();
            }
        
            api = null;
        }    
    
        void sayHello(int type) {
            api.sayHello();            
        }
    }
    
    interface ConcreteAPI {
        void sayHello();
    }
    
    public class APIBYEnglish implements ConcreteAPI {
        void sayHello() {
            System.out.println("Hello");
        }
    }
    
    public class APIByChinese implements ConcreteAPI {
        void sayHello() {
            System.out.println("你好");
        }
    }

    总之,这一部分要求我们学会写接口和使用接口。对于使用接口我们一般通过看文档、写测试用例来使用接口,同时如果接口更新后,我们也可以通过接口测试用例来检验接口的正确性。

  • 相关阅读:
    Eclipse常用开发插件
    getOutputStream() 的问题
    JSP内置对象之WEB安全性及config对象
    windows开机后键盘失灵(非硬件原因)解决办法
    Eclipse下如何导入jar包
    更改Eclipse下Tomcat的部署目录 ,防止上传的文件是到eclipse的克隆的tomcat上的webapp,而不是tomcat本身的webapp
    大数据的挑战:数据质量和历史偏见
    HR数据分析常用的50个公式
    HR数据分析常用的50个公式
    python中的随机函数random的用法示例
  • 原文地址:https://www.cnblogs.com/glsy/p/8445831.html
Copyright © 2020-2023  润新知