zoukankan      html  css  js  c++  java
  • 装饰者模式

    装饰者模式  

    装饰者模式使用步骤:
      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刹车
            
        }
    }
  • 相关阅读:
    11月20日
    11月19日
    11月26日
    11月25日
    生活有感(一)
    c# word 删除指定内容
    mysql insert语句
    c# 删除word文档中某一页
    mysql 相同表结构拷贝数据
    调试再次出错
  • 原文地址:https://www.cnblogs.com/hejh/p/10868061.html
Copyright © 2011-2022 走看看