• 装饰设计模式


    装饰设计模式:
    对一组对象的功能进行增强时,就可以使用该模式进行问题的解决。

    装饰继承都能实现一样的特点:功能的扩展增强。
    有什么区别
    首先有一个继承体系。
    Writer
    |--TextWriter:用于操作文本
    |--MediaWriter:用于操作媒体
    按照面向对象,可以通过继承对具体的进行功能的扩展。
    为了提高功能,扩展子类进行继承。导致继承体系越来越臃肿,不够灵活,
    那么就将该功能进行独立的封装,哪个对象需要功能就将哪个对象关联。

    装饰比继承灵活
    特点:装饰类和被装饰类都必须所属同一个接口或者父类。

    设计模式在JAVA I/O库中的应用

    装饰模式在Java语言中的最著名的应用莫过于Java I/O标准库的设计了。

    由于Java I/O库需要很多性能的各种组合,如果这些性能都是用继承的方法实现的,那么每一种组合都需要一个类,这样就会造成大量性能重复的类出现。

    而如果采用装饰模式,那么类的数目就会大大减少,性能的重复也可以减至最少。因此装饰模式是Java I/O库的基本模式。

    package p5.io.buffer.wapper;
    
    public class  PersonDemo {
    
        public static void main(String[] args) {
            Person p=new Person();
            p.chifan();
            NewPerson p1=new NewPerson(p);
            p1.chifan();
        }
    }
    class Person { void chifan(){ System.out.println("吃饭"); } }
    //这个类的出现时为了增强Person而出现的。 class NewPerson{ private Person p; NewPerson(Person p){ this.p=p; } public void chifan(){ System.out.println("开胃酒"); p.chifan(); System.out.println("甜点"); } } //使用继承方法 class NewPerson2 extends Person{ public void chifan(){ System.out.println("开胃酒"); super.chifan(); System.out.println("甜点"); } }
  • 相关阅读:
    C++ template —— 类型区分(十一)
    C++ template —— 表达式模板(十)
    C++ template —— template metaprogram(九)
    C++ template —— 模板与继承(八)
    [转]2015有得有悟,2016笨鸟起飞
    C++ template —— trait与policy类(七)
    protobuf与json相互转换的方法
    如何通过卡面标识区分SD卡的速度等级
    MyEclipse设置字体和背景的方法
    JAVA中日期转换和日期计算的方法
  • 原文地址:https://www.cnblogs.com/xiangkejin/p/5935087.html
Copyright © 2020-2023  润新知