zoukankan      html  css  js  c++  java
  • 设计模式之装饰模式

    装饰模式


    动态的给一个对象增加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活

    person类:

    package com.hml.decorator;
    
    public class Person {
        private String name;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public void show() {
    
        }
    }

    衣服类

    package com.hml.decorator;
    
    public class Finery extends Person {
    
        protected Person component;
    
        public void decorate(Person component) {
            this.component = component;
        }
    
        public void show() {
            if (component != null) {
                component.show();
            }
        }
    
    }

    T袖类

    package com.hml.decorator;
    
    public class TShirts extends Finery {
    
        public void show() {
            System.out.println("T袖");
        }
    
    }

    大裤衩类:

    package com.hml.decorator;
    
    public class BigTrouser extends Finery {
    
        public void show() {
            System.out.println("大裤衩");
        }
    
    }

    接下来,我们就可以创建一个对象,然后用T袖装饰,在用大裤衩装饰。

    类图:

    装饰模式的特点


    装饰模式是为已有功能动态的添加更多的功能的一种方式,把类中的装饰功能从类中搬移去除,这样可以简化原有的类。

  • 相关阅读:
    php 原生 好久不写原生demo了
    鸡汤
    php 发送smtp邮件
    php微信支付代码
    3、Flume
    P2761 软件补丁问题
    TQL
    二分图匹配
    p2597 灾难
    P3958 奶酪
  • 原文地址:https://www.cnblogs.com/heml/p/4620509.html
Copyright © 2011-2022 走看看