• 装饰者模式


    装饰者模式  

    装饰者模式使用步骤:
      1.装饰者和被装饰者实现同一个接口或者继承同一个类
        2.装饰者中要有被装饰者的引用
      3.对需要增强的方法进行加强
      4.对不需要加强的方法调用原来方法
      

    小练习:

      1.创建项目DesignMode

      2.创建包com.decorator_pattern.hjh

      3.接口Car、被装饰者类BMCar、装饰者类CarWrap、测试类CarTest

    接口Car:

    package com.decorator_pattern.hjh;
    
    //接口
    public interface Car {
         public void run();
         public void stop();
    }

    被装饰者类BMCar:

    package com.decorator_pattern.hjh;
    
    //被装饰者BMCar
    public class BMCar  implements Car{
        
        @Override
        public void run() {
            System.out.println("BMC车在跑。。。");
        }
    
        @Override
        public void stop() {
            System.out.println("BMCar刹车");
        }
    }

    装饰者类CarWrap:

    package com.decorator_pattern.hjh;
    
    public class CarWrap  implements Car{
        private Car car;
        
        public CarWrap(Car car) {
            this.car = car;
        }
        
        @Override
        public void run() {
            System.out.println("加满油");
            System.out.println("轻装上阵100码");
        }
    
        @Override
        public void stop() {
            car.stop();
        }
    }

    测试类CarTest:

    package com.decorator_pattern.hjh;
    
    public class CarTest {
        public static void main(String [] args) {
            BMCar car = new BMCar();
            //car.run();//BMC车在跑。。。
            //car.stop();//BMCar刹车
            
            CarWrap cw = new CarWrap(car);
            cw.run();//加满油  轻装上阵100码
            cw.stop();//BMCar刹车
            
        }
    }
  • 相关阅读:
    html设置360兼容/极速模式
    es查询备忘录
    TypeError: __init__() got an unexpected keyword argument 'strict'
    pandas处理csv
    scrapy中cookie处理
    滑动验证码破解(一)
    python 自定义属性访问 __setattr__, __getattr__,__getattribute__, __call__
    数据库的增删改、单表查询
    库的操作,表的操作,数据类型,完整性约束
    Mysql常用命令(二)
  • 原文地址:https://www.cnblogs.com/hejh/p/10868061.html
Copyright © 2020-2023  润新知