Java中IO流-27-装饰设计模式

    装饰这个词来自建筑行业,新房装修经常听到这个词。在Java中装饰模式,简单理解就是,把一个类给包装起来,放在一个新类中,新的类会在原来被包装类功能基础上,增加别的功能。这样保证出来的新类就具有强大的功能,其实有点像继承,有没有。在继承中,子类拥有父类的属性和方法,但是耦合性太强。父类发生改变,子类一定也跟随改变。装饰模式,和继承最大的区别就是耦合性不那么强了。

1.装饰设计模式代码例子

package io;

public class Demo5_Wrap {

	public static void main(String[] args) {
		
		Programer p = new Programer(new Student());
		p.code();
	}

}


interface Coder {
	// 定义一个程序员接口,有一个会写代码的抽象方法
	public void code();
}

class Student implements Coder {
	
	//定义一个大学生类,大学生实现了程序员这个接口,并实现了code方法
	@Override
	public void code() {
		System.out.println("Javase");
		System.out.println("JavaWeb");
	}
	
}

class Programer implements Coder {
	//1. 获取被装饰类的引用
	private Student s; 		// 获取学生引用
	//2. 在构造方法中传入被装饰类的对象
	public Programer (Student s) {  //传入一个学生对象
		this.s = s;
	}
	
	//3.对原有功能进行升级
	@Override
	public void code() {
		s.code(); //学生具有的javase javeweb技能
		System.out.println("数据库");
		System.out.println("人工智能");
		System.out.println("大数据");
	}
	
}

上面Programer这个类实现过程就是采用装饰设计模式,拿到了大学生类具备的javase和javaweb技能,同时加入了数据库,人工智能和大数据的开发能力。装饰设计模式的好处是耦合性不强,被装饰的类的变化与装饰类的变化无关。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值