zoukankan      html  css  js  c++  java
  • 面向接口程序设计思想实践

    文/xuld      

    面向接口设计,基本步骤为:
    1. 使用面向对象的方法,确定要研究的实体对象,以及对象之间的关系。
    2. 根据对象之间的关系,确定对象必需的成员,即接口。
    3. 实现所有接口,在实现接口时所需要的工具函数单独放到一个静态类,而非对象本身。

    举例,现在需要设计一个计算器,它将拥有计算 + - * / 运算符的能力。

    1. 确定要研究的实体对象。

        // 这是对象。
        class Computer {
    
        }

    2. 确定对象必需的成员。

        class Computer {
    
            // 这是接口。
            int compute(int left, char operator, int right) {
    
            }
            
        }
    

    3. 实现方法。

     class Computer {
    
            int compute(int left, Operator operator, int right) {
                // 实现接口时,不会改变原有类的设计,而是单独提取工具类库。
                switch(operator) {
                    case '+':
                        return ComputerHelper.add(left, right);
                    case '-':
                        return ComputerHelper.sub(left, right);
                    case '*':
                        return ComputerHelper.mul(left, right);
                    case '/':
                        return ComputerHelper.div(left, right);
                }
            }
            
        }
    
        static class ComputerHelper {
    
            static int add(int left, int right) { return left + right; }
            static int sub(int left, int right) { return left - right; }
            static int mul(int left, int right) { return left * right; }
            static int div(int left, int right) { return left / right; }
    
        }
    

    和面向对象的区别:

    1.面向对象中,类内部封装大量实现逻辑。面向接口中实体类是不可再拆分的最小逻辑单位,实现逻辑不位于类内部。

    2.面向对象中,类代表一个完整的对象。而面向接口中类代表对象的一个片面。例如人这个对象,在面向接口中,可以分成动物和用户两种实体,它们直接共享一个接口而非对象。

    面向接口的优势

    在面向接口中,对象以及对象的目标是非常明确的,通过对象的关系链可以很清晰地理解整体的构架图,而不会受到各个实现逻辑的干扰。

    同时,部分逻辑的改变不导致整个项目重构。

  • 相关阅读:
    java基础之条件运算符
    java基础之x++与++x
    java基础之三种注释及API帮助文档的生成
    java基础之类型转换及常量的应用
    java基础之数据类型
    java基础之标识符
    生活小插曲(长篇连载,持续更新ing)^_^
    记录那个刚毕业,还不太富裕的那个人的生活
    记录两次小组会议总结
    这是大娃笔记里的一首散文诗
  • 原文地址:https://www.cnblogs.com/xuld/p/3803834.html
Copyright © 2011-2022 走看看