装饰者设计模式

/*
 * 装饰者设计模式:增强一个类的功能,而且还可以让这些装饰类互相装饰
 * 装饰者设计模式的步骤:
 *        1.在装饰类的内部维护一个被装饰类的引用
 *        2.让装饰类有一个共同的父类或者是父接口
 *        
 * BufferedReader是不是拓展了FileReader的功能
 * BufferedWriter也是拓展了FileWriter的功能
 * 
 * 需求1:编写一个类拓展了BufferedReader的功能,增强readLine方法返回的字符串带有行号
 * 需求2:编写一个类拓展了BufferedReader的功能,增强readLine方法返回的字符串带有分号
 * 需求3:编写一个类拓展了BufferedReader的功能,增强readLine方法返回的字符串带有双引号
 * 需求4:编写一个类拓展了BufferedReader的功能,增强readLine方法返回的字符串带有行号+双引号
 * 需求5:编写一个类拓展了BufferedReader的功能,增强readLine方法返回的字符串带有行号+分号
 * 需求6:编写一个类拓展了BufferedReader的功能,增强readLine方法返回的字符串带有分号+双引号
 * 需求7:编写一个类拓展了BufferedReader的功能,增强readLine方法返回的字符串带有行号+分号+双引号
 * 
 * 增强一个类的功能时候我们可以选择继承:
 *     通过继承实现增强一个类的功能优点:代码结构清晰,通俗易懂。
 *     缺点:使用不灵活,会导致继承的体系过于庞大。
 *     
 * 继承实现的增强类和修改模式实现的增强类有何区别?
 *    继承实现的增强类:
 *        优点:代码结构清晰,而且实现简单
 *        缺点:对于每一个的需要增强的类都需要创建具体的子类来帮助其增强,这样会导致继承体系过去庞大。
 * 修饰模式实现的增强类:
 *        优点:内部可以通过多态技术对多个需要增强的类进行增强,可以是这些装饰类达到相互装饰的效果。使用比较灵活
 *        缺点:需要内部通过多态技术维护需要被增强的类的实例。进而使得代码稍微复杂。       
 * 

 * */


运行结果:Demo01.java内容每一行开头有行号,末尾有分号。


/*
 *练习:
 *    一家三口每个人都会工作,儿子的工作就是画画,母亲的工作就是在儿子的基础上做一个增强,不单止画画,还可以上涂料
 *    爸爸的工作就是在妈妈的基础上做了增强,就是上画框 
 * */


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值