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

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

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


    class ClientClass {
        Person person = new Person()
        person.doSomething()
    }

    class Person{
        Department department = new Department()
        department.doSomething()
    }

解决方法


    class ClientClass{
        Server server = new Server()
        server.doSomething()
    }

    class Server{
        Delegate delegate = new Delegate()
        void doSomething(){
            delegate.doSomething()
        }
    }
    //委托类其实隐藏在客户类里面
    // 改变不会传播到客户端那边,因为它之后影响到服务端这边
    class Delegate{
        void doSomething(){...}
    }

动机

关键在于封装

类应该尽量的使用其他的类

> manager = john.getDepartment().getManager();




    class Person {
        Department _department;
        public Department getDepartment() {
            return _department;
        }
        public void setDepartment(Department arg) {
            _department = arg;
            }
        }

    class Department {
        private String _chargeCode;
        private Person _manager;
        public Department (Person manager) {
            _manager = manager;
        }
        public Person getManager() {
            return _manager;
        }
        ...

to

> manager = john.getManager();


    class Person {
        ...
        public Person getManager() {
            return _department.getManager();
        }
    }

一个类通过代理干了太多的事情

让客户直接调用委托


    class ClientClass {
        Person person = new Person()
        person.doSomething()
    }

    class Person{
        Department department = new Department()
        department.doSomething()
    }


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

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

    • 凯瑟琳赫本
      凯瑟琳赫本

      这里有个小女孩很懂事

    • 任满亮
      任满亮

      事前已经经由外交途径警告过了

    • 苟玉轩
      苟玉轩

      记忆深刻

    热点图片
    拼命载入中...