JAVA全系列 教程
3762个小节阅读:7089k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
新建专业接口
xxxxxxxxxx
// 专业接口
public interface Subject {
// 专业内容方法
void subject();
}
新建java专业实现类
xxxxxxxxxx
// java专业
public class JavaSubject implements Subject{
@Override
public void subject() {
System.out.println("java专业");
}
}
前端专业实现类
xxxxxxxxxx
public class FrontendSubject implements Subject {
@Override
public void subject() {
System.out.println("前端专业");
}
}
新建专业包装接口,提出需要包装的方法
xxxxxxxxxx
public interface SubjectWrapper extends Subject {
void friend();
}
创建包装的具体实现
xxxxxxxxxx
public class SubjectWrapperImpl implements SubjectWrapper{
private Subject subject;
public SubjectWrapperImpl(Subject subject) {
this.subject = subject;
}
@Override
public void subject() {
subject.subject();
friend();// 调用包装方法
}
@Override
public void friend() {
System.out.println("分配女朋友");
}
}
测试类测试效果
xxxxxxxxxx
public class TestWrapper {
public static void main(String[] args) {
JavaSubject javaSubject = new JavaSubject();
SubjectWrapperImpl subjectWrapper = new SubjectWrapperImpl(javaSubject);
subjectWrapper.subject();
}
}
优点:
动态扩充,不需要修改原有代码,不需要过度使用继承
缺点:
多重装饰比较复杂。