今天俺要说一说装饰着模式(decorator)(代码片段)

zaranet zaranet     2022-12-28     308

关键词:

前言:装饰者模式,又叫做装饰器模式.顾名思义,就是给对象包裹一层,包装。让它变成你喜欢的对象。这种模式在我们开发中经常会用到,它是一种处理问题的技巧,即不让程序死板,也可以扩展程序。

(一)何时能用到它》》》

  1.需要给类一个扩展,或者给类附加一个职责。

  2.动态的给类添加一个功能,这些功能可以动态得撤销。

  3.当不能采用子类进行扩展的时候。

这一文中,我们以主要的3来举例说明的。

(二)装饰器的结构图》》》

技术分享图片

 

IAction:装饰器标准接口,装有装饰器都要实现它。

DelegateAction:装饰类,用来实现IAction插口的功能,并对外部提供另一种表现形式。

StandardAction:标准实现类,用来实现IAction插口的功能,对其展示也是以IAction接口为准的

Implement:对外公开的调用类,它向外部公开两种接口方法,一是IAction接口标准,一是Action<int> 委托标准。

装饰器的C#实现

 IAction.cs

 

#region 装饰着模式
    public interface IAction
    
        void Pring(int a);
    
    #endregion

 

DelegateAction.cs

public class DelegateAction:IAction
    
        Action<int> _action;
        public void Pring(int a)
        
            _action(a);
        
        public DelegateAction(Action<int> action)
        
            _action = action;
        
    

Implement.cs

 public class Implement
    
        public void Run(IAction action)
        
            action.Pring(10);
        
        public void Run(Action<int> action)
        
            new DelegateAction(action).Pring(10);
        
    

standarAction.cs

public class standarAction : IAction
    
        public void Pring(int a)
        
            Console.Write("标准实现装饰器"+a);
        
    

调用:

 static void Main(string[] args)
        
            Implement implement = new Implement();
            implement.Run((a) => Console.Write(a));
            implement.Run(new standarAction());
        

 

简单理解es7decorator

...目的是让你们知其然//==========================================//今天我们来说一说es7的装饰者模式(Decorator)//啥是装饰者模式,听着很高大上//我不和你扯什么设计模式,元编程,我从一个游戏的例子给大家讲解//装饰器就是给一个游 查看详情

设计模式---单一职责模式之装饰模式(decorator)(代码片段)

...码,这时候的关键是划清责任典型模式(表现最为突出)装饰模式Decorator桥接模式Bridge 一:装饰模式(一)概念装饰模式又叫做包装模式。通过一种对客户端透明的方式来扩展对象的功能,是继承关系的一个替换方案。装饰... 查看详情

装饰模式decorator

第三章 装饰模式Decorator 1.1什么是装饰模式?装饰模式Decorator,动态的给一些对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活1.2装饰模式Decorator的结构图 Component是定义一个对象接口,可以给这些对... 查看详情

设计模式--装饰模式(decorator)

装饰模式(Decorator): 动态的给一个对象加入一些额外的职能,就添加功能来说,装饰模式比生成子类更为灵活。实例:ConcreteComponent:让Decorator对象为自己加入功能。有时候使用ConcreteComponent的派生类提供核心功能。在这样的... 查看详情

设计模式之装饰着模式

   今天学习了装饰着模式,写在这里防止忘掉。   装饰着模式自己理解就是给类添加职责,添加新的功能。   比如下面的代码。   /***Date:2017/7/1*Author:Hsj*Description:*/publicclassDemo3{@Testpubl... 查看详情

decorator装饰模式(代码片段)

装饰模式又名包装(Wrapper)模式。装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。装饰模式的结构装饰模式以对客户透明的方式动态地给一个对象附加上更多的责任。换言之,客户端并不会觉得对象... 查看详情

设计模式之装饰模式decorator

  代码实现publicinterfaceICar{voidmove();}抽象构建角色//具体构件角色(真实对象,被装饰角色)classCarimplementsICar{@Overridepublicvoidmove(){System.out.println("陆地上跑");}}具体构建角色//装饰角色classSuperCarimplementsICar{privateI 查看详情

设计模式--装饰模式decorate(结构型)

一、装饰模式动态地给一个对象添加额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。有时我们希望给某个对象而不是整个类添加一些功能。二、UML图1.Component(概念中提到的对象接口),也就是“被装饰者”。2.Con... 查看详情

装饰模式(decorator)

...对象中,由这个对象添加边框。我们称这个嵌入的对象为装饰。这个装饰与它所装饰的组件接口一致, 查看详情

设计模式入门之装饰器模式decorator

//装饰模式定义:动态地给一个对象加入一些额外的职责。//就添加功能来说,装饰模式比生成子类更为灵活//这也提现了面向对象设计中的一条基本原则,即:尽量使用对象组合。而不是对象继承//Component:组件对象的接口。能... 查看详情

decorator(装饰器模式)

装饰器模式允许我们根据运行时不同的情景动态地为某个对象调用前后添加不同的行为动作。<?phpclassHtmlTemplate{//anyparentclassmethods}classTemplate1extendsHtmlTemplate{protected$_html;publicfunction__construct(){$this->_html="<p>__tex 查看详情

装饰者模式decoration

1.什么是装饰者模式   动态给对象增加功能,从一个对象的外部来给对象添加功能,相当于改变了对象的外观,比用继承的方式更加的灵活。当使用装饰后,从外部系统的角度看,就不再是原来的那个对象了,而是使... 查看详情

decorator装饰(结构型)

Decorator装饰(结构型)一:描述:Decorator装饰模式是动态地给一个对象增加一些额外的功能职责特性。来替换以前使用的继承来静态扩展对象的功能,避免子类的增多,做到更灵活;注:和桥接模式不同的是,桥接的对象是无顺... 查看详情

装饰模式(decorator-pattern)(代码片段)

装饰模式(decorator-pattern)文章目录装饰模式(decorator-pattern)一、手抓饼点餐系统二、要求进阶三、装饰模式概要四、装饰模式的优劣及应用场景1.优点2.缺点3.应用场景一、手抓饼点餐系统请设计一个手抓饼点餐系统,支持加配... 查看详情

装饰模式(decorator)

...的给一个对象添加一些额外的职责,就增加的功能来说,装饰模式比生成子类更为灵活。【DP】二、通俗的理解;  装饰模式是利用其中的方法为来对对象进行包装的,这样每个包装对象的事项就和如何使用这个对象分离了,每... 查看详情

设计模式之装饰模式(decorator)详解及代码示例(代码片段)

一、装饰模式的定义  装饰(Decorator)模式的定义:指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式,它属于对象结构型模式。二、装饰模式优缺点  装饰(Decorator)模式的主... 查看详情

设计模式之——decorator模式

Decorator模式又叫装饰者模式,这种模式是为了满足Java开发的“面向扩展开放,面向修改闭源”的开发原则设计出来的。在装饰者模式中,不修改源类的代码,却能修改源类中方法的功能。下面就以Angelababy化妆为例,详细介绍一... 查看详情

设计模式-装饰者模式

装饰者模式(Decorator)装饰者模式(Decorator):动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。 装饰者模式结构:   抽象构件(Component)角色:给出一个抽象接口,以规范准... 查看详情