• 装饰者模式


    装饰者模式  

    装饰者模式使用步骤:
      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刹车
            
        }
    }
  • 相关阅读:
    sshd服务防止暴力破解
    使用秘钥ssh登录远程服务器
    SSH配置文件详解
    WinForm、wpf、silverlight三者关系
    silverlight 和winform的结合使用
    IIS在W7下使用
    c#多线程
    Silverlight的Socket通信
    wcf和webservice区别
    aspx向silverlight传值
  • 原文地址:https://www.cnblogs.com/hejh/p/10868061.html
Copyright © 2020-2023  润新知