b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

微服务架构 云计算 重构 -改变既有代码的设计 ---- 笔记(14)

电脑杂谈  发布时间:2018-10-13 16:05:07  来源:网络整理

动机

当对象引用需要互相引用的时候,你应该采用这种方法

当你有个双向联系的类,但是在后期一个类不在需要另一个类中的属性了

扔掉不需要的联系

动机

当双向联系不在需要,减少复杂度,移除僵尸对象,消除相互依赖

你有一个特定含义的字符串

创建一个常量,名称根据它的意思命名然后替换那个数字


    double potentialEnergy(double mass, double height) {
        return mass * 9.81 * height;
    }

to


    double potentialEnergy(double mass, double height) {
        return mass * GRAVITATIONAL_CONSTANT * height;
    }
    static final double GRAVITATIONAL_CONSTANT = 9.81;

动机

避免使用魔法数字

这里有一个公共的字段

将它改为私有的并提供访问函数


    public String _name

to


    private String _name;
    public String getName() {
        return _name;
    }
    public void setName(String arg) {
        _name = arg;
    }

动机

你应该将你数据公开

一个返回几个的方法

确保返回一个只读的影像对象,然后提供添加和移除方法


    class Person {
        Person (String name){
            HashSet set new HashSet()
        }
        Set getCourses(){}
        void setCourses(:Set){}
    }

to


    class Person {
        Person (String name){
            HashSet set new HashSet()
        }
        Unmodifiable Set getCourses(){}
        void addCourses(:Course){}
        void removeCourses(:Course){}
    }

动机

封装减少了拥有类和和其客户端的耦合

getter 方法不应该返回集合的本身

getter方法应返回对集合进行操作的内容并隐藏其中不必要的细节

这个几个不应该有setter方法,只能添加和移除操作

你必须面对一个记录值在传统的编程环境中

使用一个僵尸数据对象代替记录值

动机

复制一个传奇代码

使用传统的API编程和来代替一个记录值

一个类拥有数字类别码,不能影响其行为

使用类来代替数字


    class Person{
        O:Int;
        A:Int;
        B:Int;
        AB:Int;
        bloodGroup:Int;
    }

to


    class Person{
        bloodGroup:BloodGroup;
    }

    class BloodGroup{
        O:BloodGroup;
        A:BloodGroup;
        B:BloodGroup; 
        AB:BloodGroup;
    }


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-89441-14.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    每日福利
    热点图片
    拼命载入中...