详细了解java开发模式之——装饰模式!

		大家都知道在实际开发中,一般都不建议修改别人代码,如果想在被人的代码上面添加功能,那么就非装饰模式莫属了。
			 An highlighted block var foo = 'bar';
			
			
			/**
			 * 被装饰的类
			 * @author Jadmin
			 *
			 */
			public class Person {
			//有一个eat方法
			public void eat() {
			System.out.println("吃饭");
			}
			
			}
			 
			 
			
			/**
			
			
			 * 装饰类:
			 * 注意:
			 *1. 装饰类没有无参构造
			 *2.要在构造器中,传入被装饰的类
			 * @author Jadmin
			 *
			 */
			public class SuperPerson {
			private Person person;
			
			// 构造器最中传入一个Person对象,构造器中一定要传一个被装饰的类进来
			public SuperPerson(Person person) {
			this.person = person;
			}
			
			//装饰,被装饰类中不完善的方法
			public void superEat() {
			System.out.println("喝汤");
			person.eat();
			System.out.println("喝茶");
			
			}
			
			public void eat() {
			person.eat();
			}
			
			
			
			
			
			public class Test {
			public static void main(String[] args) throws Exception{
			
			SuperPerson sp = new SuperPerson(new Person());
			sp.superEat();
			
			//BufferedReader就是一个典型的装饰类,传入一个被装饰的流,
			// BufferedReader bis = new BufferedReader(new FileReader(""));
			// bis.readLine();
			// bis.read();
			}
			
			}
		调用SuperPerson的方法则必须需要传一个对象,这样就在没修改别人代码的情况下添加了新功能!
		 
		又学习到了一招!!

Jadmin个人博客:www.xxc520.cn

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值