zoukankan      html  css  js  c++  java
  • 2020-03-11

    庚子鼠年 己卯月 癸丑日

    描述

    装饰者模式:https://www.cnblogs.com/WindSun/p/10263459.html

    https://blog.csdn.net/qq_40674583/article/details/104804168

    技术博客:

    随笔

    装饰者模式(无限套娃)

    ​ 装饰模式(Decorator Pattern) :动态地给一个对象增加一些额外的职责(Responsibility),就增加对象功能来说,装饰模式比生成子类实现更为灵活。其别名也可以称为包装器(Wrapper),与适配器模式的别名相同,但它们适用于不同的场合。根据翻译的不同,装饰模式也有人称之为“油漆工模式”,它是一种对象结构型模式。

    img

    装饰模式包含如下角色:

    Component: 抽象构件

    ConcreteComponent: 具体构件(只管执行)

    Decorator: 抽象装饰类(实现具体构建的方法)

    ConcreteDecorator: 具体装饰类(调用父类构造器实例化)

    装饰者模式多层加密

    img

    个人理解

    感觉装饰者模式就是无限套娃,Component: 抽象构件会产生两个类,一个是具体的实现,一个是装饰品的抽象类,然后就是不同的装饰品继承这个抽象类。

    具体的实现:继承接口(Cipher),创建这个原型(SimpleCipher),要被装饰的东西。

    抽象实现:继承接口(Cipher),创建抽象类(CipherDecorator),通过构造方法传入(Cipher),然后调用Cipher的装饰方法。

    装饰类实现:继承抽象实现,复写父类的方法 调用 + 装饰

    例如:

    public class AdvancedCipher extends CipherDecorator {
        protected AdvancedCipher(Cipher cipher) {
            super(cipher);
        }
    
        public String encrypt(String plainText) {
            String result = super.encrypt(plainText);
            result=mod(result);
            return result;
        }
    
        public String mod(String text) {
            String str="";
            for(int i=0;i<text.length();i++){
                String c=String.valueOf(text.charAt(i)%6);
                str+=c;
            }
            return str;
        }
     }
    

    markdown语法记忆

    - [ ] 计划任务
    - [x] 完成任务
    
    链接: [link](https://www.csdn.net/).
    
    图片: ![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw)
    
    带尺寸的图片: ![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw =30x30)
    
    居中的图片: ![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw#pic_center)
    
    居中并且带尺寸的图片: ![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw#pic_center =30x30)
    
    
    一个具有注脚的文本。[^1]
    [^1]: 注脚的解释
    
    
    
  • 相关阅读:
    小白学Python第二周小结(函数)
    小白学Python读写文件和处理异常
    小白学Python做个小游戏
    小白学Python第二周小结(字符串和常用数据结构)
    小白学Python第一周小结
    OpenGL进阶之Instancing
    加减乘除算法代码 31
    软件团队模式选择 31
    开发流程选择 31
    countdown(倒计时) 31
  • 原文地址:https://www.cnblogs.com/chang1024/p/12465081.html
Copyright © 2011-2022 走看看