zoukankan      html  css  js  c++  java
  • 设计模式之-外观模式

    外观模式是为了解决类与类之家的依赖关系的,像spring一样,
    可以将类和类之间的关系配置到配置文件中,而外观模式就是将
    他们的关系放在一个Facade类中,降低了类类之间的耦合度,该
    模式中没有涉及到接口(我们以一个计算机的启动过程为例)

    开机 cpu启动-缓存启动-硬盘启动-开机成功 这种顺序。

    CPU类:
    public class CPU {
    
        public void startup(){
            System.out.println("cpu 启动!");
        }
    
        public void shutdown(){
            System.out.println("cpu 关闭!");
        }
    }

    Memory类:

    public class Memory {
        public void startup(){
            System.out.println("缓存启动!");
        }
    
        public void shutdown(){
            System.out.println("缓存关闭!");
        }
    }

    Disk类:

    public class Disk {
        public void startup(){
            System.out.println("硬盘启动!");
        }
    
        public void shutdown(){
            System.out.println("硬盘关闭!");
        }
    }

    Computer类:

    public class Computer {
        private CPU cpu;
        private Memory memory;
        private Disk disk;
    
        public Computer(){
            cpu = new CPU();
            memory = new Memory();
            disk = new Disk();
        }
    
        public void startup(){
            System.out.println("开机");
            cpu.startup();
            memory.startup();
            disk.startup();
            System.out.println("开机成功!");
        }
    
        public void shutdown(){
    
            System.out.println("关机");
            cpu.shutdown();
            memory.shutdown();
            disk.shutdown();
            System.out.println("关机成功!");
    
        }
    }

    Persion类:(persion类去操作电脑!)

    public class User {
        public static void main(String[] args) {
            Computer computer = new Computer();
            computer.startup();
            computer.shutdown();
        }
    }

    如果没有Computer类,CPU、Memory、Disk他们之间将会相互持有实例,产生关系,这样会造成严重的依赖,

    修改一个类,可能会带来其他类的修改,这不是我们想要看到的,有了Computer类,他们之间的关系被放在了Computer类里,

    这样persion类去操作computer类,这样就起到了解耦的作用。



  • 相关阅读:
    反向映射和写时复制
    内存分析的好blog
    minicom使用
    tee的妙用
    网络带宽
    mem analyse
    linux 应用层常用API/命令
    ubuntu 库依赖问题
    Python基础学习笔记(一:hello world)
    第7章 取消与关闭
  • 原文地址:https://www.cnblogs.com/lewskay/p/6409082.html
Copyright © 2011-2022 走看看