栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java设计模式:装饰模式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java设计模式:装饰模式

什么是装饰模式

装饰( Decorator )模式又叫做包装模式。通过一种对客户端透明的方式来扩展对象的功能,是继承关系的一个替换方案。

装饰模式的结构

实现步骤
  • 创建一个抽象接口,是被装饰类和装饰类的父接口
public interface Car {
	public void show();
	public void run();
}
  • 创建抽象组件的实现类,此时该类可以实现抽象接口定义的方法
public class RunCar implements Car {
	public void run() {
		System.out.println("可以跑");
	}
	public void show() {
		this.run();
	}
}
  • 如果想要拓展功能,需要在定义一个抽象装饰类,继承抽象接口
public abstract class CarDecorator implements Car{
	private Car car;
	
	public Car getCar() {
		return car;
	}

	public void setCar(Car car) {
		this.car = car;
	}

	public CarDecorator(Car car) {
		this.car = car;
	}
	
	public abstract void show();
}
  • 然后再创建一个具体的装饰角色,为抽象装饰类的实现类,负责具体的装饰
public class FlyCarDecorator extends CarDecorator{

	public FlyCarDecorator(Car car) {
		super(car);
	}

	public void show() {
		this.getCar().show();
		this.fly();
	}
	
	public void fly() {
		System.out.println("可以飞");
	}

	public void run() {		
	}
}

  • 在main方法中创建RunCar对象,该对象只能实现它自己的方法,如果想要在它基础上,在拓展一些方法,只需要使用具体的装饰类,进行拓展。
public static void main(String[] args) {
		Car car = new RunCar();
		car.show();
		System.out.println("---------");
		Car flySwimCar = new FlyCarDecorator(car);
		flySwimCar.show();
	}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/678771.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号