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

    说明:
    装饰器模式 (Decorator Pattern)允许 向一个现有的对象添加新的功能,同时又不改变其结构 。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。
    这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。
    实现方法
    1.新建一个接口
    pubic abstract 手机(){
    public abstract print();
    }
    2.新建装饰器类
    public abstract 装饰器:手机{
        protectted 手机 手机对象名;
        public override print(){
        //我是XX手机。
        }
        public void SetPhone(手机 入参手机){
        this.手机对象名 = 入参手机
        }
    }
    3.新建实体类。
    public class 苹果手机:手机{
        public override print(){
        //我是苹果手机
        }
    }
    4.新建装饰器
    public class 手机壳:装饰器{
        public override print(){
        //我是带壳的
        }
    }
    public class 手机膜:装饰器{
        public override print(){
        //我是带膜的
        }
    }
    5.举例
    //一个苹果手机
    苹果手机 我的手机= new 苹果手机();
    我的手机.print();
    //一个带壳的苹果手机
    手机壳 带壳手机 = new 手机壳();
    手机壳.SetPhone(我的手机);
    手机壳.print();
    //一个带膜的苹果手机
    手机膜 带膜手机 = new 手机膜();
    手机膜.SetPhone(我的手机);
    手机膜.print();
    //一个带壳又带膜的苹果手机
    手机膜 带膜带壳手机 = new 手机膜();
    带膜带壳手机.SetPhone(带壳手机);
    带膜带壳手机.print();

     
  • 相关阅读:
    我的后端开发书架2015 2.0版
    Java根据字节数据判断文件类型
    基于lucene的案例开发:查询语句创建PackQuery
    Web 前沿——HTML5 Form Data 对象的使用
    基于HTML5的可预览多图片Ajax上传
    【面试】Spring问答Top 25
    【劳动节江南白衣Calvin 】我的后端开发书架2015
    【转载】Java 动态代理
    使用iframe给页面的localStorage扩容
    js中的||和&&使用技巧
  • 原文地址:https://www.cnblogs.com/magicalconch/p/14457574.html
Copyright © 2011-2022 走看看