[设计模式](一)装饰器模式的意义

本文探讨了在面对不断变化的需求时,如何避免过度使用继承导致的代码膨胀问题。通过一个画图的例子,展示了装饰器模式如何有效地解决这一挑战。装饰器模式允许在不修改原有类的基础上,动态添加新功能,降低耦合度,提高代码复用。
摘要由CSDN通过智能技术生成

设计模式的博客比较多,但好多为了表述的严谨性,理解起来让人有些疑惑。从本篇开始希望用自己粗浅简易的语言,来描述几种比较有困惑的设计模式在实际运用中的意义。

有两个基础类

publicclass DrawACircle{
public void draw(){
     //画了个圈
};
}

publicclass DrawARectangle{
public void draw(){
     //画了个方块
};
}

需求来了:画个红色的圈

容易想到的偷懒做法就是继承DrawACircle类,然后再描个红色的边,因此现在有这个类

publicclass DrawARedCircle extends DrawACircle{
@Override
public void draw(){
super.draw();
//然后再描个红色边
     }
}

需求又来了:画个红色的方块

简单!上面的方法再来一遍。。。

需求叕来了:画个红色的叉

(#‵′)靠。。。。。好烦

 

因此从上面的例子可以看到,继承虽然可以很方便得复用父类的方法,但是如果是出现上述这种非常相近的工作,即使能通过复用来减少工作量,但随着需求的增加,导致代码膨胀的很快。所以在dalao们踩坑后发现了装饰器模式可以比较完美的解决这个问题。

简述意义:一种具体的装饰方式,可以反复地对不同的具体被装饰对象使用,大量减少重复劳动;同时,还能基于基础的装饰类,开发其他各种装饰方式,耦合性低。

具体例子可以看:菜鸟教程关于装饰器模式的具体例子

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值