zoukankan      html  css  js  c++  java
  • Java设计模式

    装饰(Decorator)设计模式

    • 动态的给一个对象添加一些额外的功能,就增加功能这一点来说,装饰模式比生成子类更加的灵活
    • 在不必改变原类文件和使用继承的情况下,动态的扩展一个对象的功能(这就是装饰设计模式的好处)
    • 装饰设计模式是创建一个包装对象,也就是使用装饰来包裹真实的对象

    应用场景:

    • 需要拓展一个类的功能,或者是给一个类添加附加的职责
    • 当不能采用生成子类来实现时,就比如说是final类

    装饰模式的实现方式:

    • 装饰对象和真实对象有相同的接口
    • 装饰对象包含一个真实对象的引用
    • 装饰对象的所有方法,内部实现都是通过真实对象的引用来调用的,然后实现自己的功能、

     一个小小的例子:

    package null08060056;
    //装饰设计模式的演示
    
    public class Demo01 {
    
        public static void main(String[] args) {
    
            //调用
            Son son = new Son(new Father());
            son.publicCan();
            
        }
    
    }
    //创建一个接口或者是抽象类
    interface Interface{
        public void publicCan();
    }
    final class Father implements Interface{
    
        @Override
        public void publicCan() {
            System.out.println("I can eat");
        }
    }
    //我先在想要定义一个class Son使Son也有Father一样的publicCan,但是不能继承啊,那就只能装饰了
    class Son implements Interface{
        private Father i;
        public Son(Father obj) {
            this.i = obj;
        }
    
        @Override
        public void publicCan() {
            i.publicCan();
            System.out.println("I also can sleep");
        }
        
    }

    未完待续......

  • 相关阅读:
    25个自适应菜单教程和脚本
    15+最好的视差滚动技术指南
    15个最好的视差滚动教程
    36个创意广告海报欣赏
    26个新鲜有魅力的自适应网站设计实例
    32+激发灵感的HTML5/CSS3网页设计教程
    15+ 易响应的CSS框架快速开启你的敏捷网站项目
    25个令人难忘的广告设计
    15个华丽的wordPress全屏商务主题
    30个精美的美元折纸艺术
  • 原文地址:https://www.cnblogs.com/smiling-crying/p/9426426.html
Copyright © 2011-2022 走看看