• 设计模式中介者


    中介者模式



    设计原则:遵循迪米特,破坏单一职责
    常用场景:一个系列的对象交互关系十分复杂
    使用概率:10%
    复杂度:中
    变化点:对象之间的交互
    选择关键点:复杂的交互关系是否有共性可被中介者承担
    逆鳞:中介者无法工作


    主要思想:
    租房子找中介,这样就和房东没什么直接关系了,我有事也不用麻烦房东,房东有事也不找我
    即两个对象需要有关系,但是类中不定义和依赖,而是把这种关系找一个中介类去维护
    比如我是 租房的类 我要找房东吧 那我就需要定义房东类对象 就形成依赖了
    同样房东类一样
    但是现在我和房东都找中介,那么租房者类和房东类 只需要持有中介类对象就可以了,并且有什么关于房子的事,因为中介类中持有房东和租房者对象那么都可以在中介类中完成了




    public class Landlord {
    
        private Mediator mediator;
    
        public void setMediator(Mediator mediator) {
            this.mediator = mediator;
        }
    
        public void rentOut() {
            System.out.println("出租房子");
        }
    }
    
    
    public class Renting {
    
        private Mediator mediator;
    
        public void setMediator(Mediator mediator) {
            this.mediator = mediator;
        }
    
        public void RentIn() {
            System.out.println("租房子");
        }
    }
    
    
    //这里只写了中介租出了房子,两方和中介的交互没做但是也持有中介的对象,可进行想要的交互
    public class Mediator {
    
        private Landlord landlord;
        private Renting renting;
    
        public void setLandlord(Landlord landlord) {
            this.landlord = landlord;
        }
    
        public void setRenting(Renting renting) {
            this.renting = renting;
        }
    
        public void RentHouse() {
            landlord.rentOut();
            renting.RentIn();
        }
    }
  • 相关阅读:
    HTTP协议中常用相应的状态码总结
    mysql 用户管理
    史上最全的mysql聚合函数总结(与分组一起使用)
    jQuery+masonry实现瀑布流
    MySQL Workbench 导入导出乱码解决方法
    在Google Maps 上点击标签显示说明并保持不消失
    在Google Maps 上点击标签后显示说明
    如何在Google Maps 添加多个标记
    如何在 Google 地图中添加标记和说明
    Google Maps API3 之 Hello World
  • 原文地址:https://www.cnblogs.com/zhaojj/p/7800536.html
Copyright © 2020-2023  润新知