zoukankan      html  css  js  c++  java
  • 装饰模式--- 结构型模式

    适用场景,不断组合一些功能组件的时间用

    JDK中,输入流输出流就用了这个模式 ()各种inputStrem传入返回inputStream)

    UML图如下

    Icar类

    public interface ICar {
    
        void run();
    }
    View Code

    car类

    public class Car implements ICar{
        @Override
        public void run() {
            System.out.println("普通的run");
        }
    }
    View Code

    superCar类

    public class SuperCar extends Car {
        private Car car;
    
        public SuperCar(Car car) {
            this.car = car;
        }
    
        public void run(){
            car.run();
        }
    }

    这个是最核心的,因为重写的run方法,实际调用的是穿进来的car对象的run方法

    AICar类

    public class AiCar extends SuperCar {
        public AiCar(Car car) {
            super(car);
        }
    
        public void AiRun(){
            System.out.println("ai run");
        }
    
        @Override
        public void run() {
            AiRun();
            super.run();
        }
    }
    View Code

    Water类

    public class WaterCar extends SuperCar {
    
        private Car car;
        public WaterCar(Car car) {
            super(car);
        }
    
        public void water(){
            System.out.println("水上 run");
        }
        @Override
        public void run() {
            water();
            super.run();
        }
    }
    View Code

    cient调用

        public static void main(String[] args) {
    
            Car Car = new WaterCar( new AiCar(new Car()));
            Car.run();
        }

    效果如下:

    欢迎关注我的公众号:“进阶者euj”
  • 相关阅读:
    MySQL数据库高并发优化配置
    MySQL性能参数详解
    jQuery中过滤选择器first和first-child的区别
    Linux非常用命令
    jps命令学习
    通过乐观锁(版本号)降低并发时的锁竞争
    ReentrantLock 相关学习笔记
    grep 所有多个关键字
    ThreadLocal学习笔记
    Idea设置全白色 背景
  • 原文地址:https://www.cnblogs.com/yeyongjian/p/8906970.html
Copyright © 2011-2022 走看看