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袖装饰,在用大裤衩装饰。

    类图:

    装饰模式的特点


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

  • 相关阅读:
    Ajax实现表格实时编辑
    自定义简单分页
    有趣的 0
    关于AJAX的一些事
    JQ中的FormData对象 ajax上传文件
    订单导出
    javaScript事件委托
    javascript递归函数
    详解javascript中this的工作原理
    详解JavaScript对象继承方式
  • 原文地址:https://www.cnblogs.com/heml/p/4620509.html
Copyright © 2011-2022 走看看