1    课程讲解

1.1  类型

1.2  定义

1.3  应用场景

1.4  优点

1.5  缺点

1.6  关联设计模式

1.7  其他知识点

 

1    课程讲解
1.1  类型

结构型

 

1.2  定义

◆定义:在不改变原有对象的基础之上,将功能附加到对象上

提供了比继承更有弹性的替代方案(扩展原有对象功能)

比如说:我买蛋糕的时候加草莓还是芒果,我烧饼加火腿,鱼豆腐还是鸡蛋

 

1.3  应用场景

◆扩展一个类的功能或给一个类添加附加职责

动态的给一个对象添加功能,这些功能可以再动态的撤销

 

1.4  优点

◆继承的有力补充,比继承灵活,不改变原有对象的情况下给一个对象扩展功能
◆通过使用不同装饰类以及这些装饰类的排列组合,可以实现不同效果

符合开闭原则

 

1.5  缺点

◆会出现更多的代码,更多的类,增加程序复杂性
◆动态装饰时,多层装饰时会更复杂

 

1.6  关联设计模式

装饰者模式和代理模式:

a  装饰者模式关注动态的添加方法,代理模式关注于控制对对象的访问,

b  代理模式中的代理类可以对它的客户隐藏一个对象的具体信息,通常在使用代理模式的时候常常在代理类中创建一个对象的实例,装饰者模式通常把原始对象作为一个参数传入装饰者的构造器,这是使用上的不同。

 

◆装饰者模式和适配器模式

两者都是包装者模式,前者装饰者是原始对象的子类,后者适配器和原始对象有不同的接口

 

1.7  其他知识点

装饰者本身也实现了继承,继承是扩展形式之一,不见得能达到弹性设计的最佳方式,

装饰者模式做的,是把类中的装饰功能从类中移出去,简化了原来被装饰的类,同时把类的核心功能和类的装饰功能区分开,还可以去除不同类中重复的装饰逻辑

posted on 2019-09-07 16:20  菜鸟乙  阅读(206)  评论(0编辑  收藏  举报