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技能,同时加入了数据库,人工智能和大数据的开发能力。装饰设计模式的好处是耦合性不强,被装饰的类的变化与装饰类的变化无关。

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011541946/article/details/81592675
文章标签: 装饰设计模式
上一篇DevOps基础-2.3-做别人
下一篇Java中IO流-28-用指定编码表读写文件
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭