public abstract class NBAProcess {
private TeamProcess teamProcess;
public NBAProcess(TeamProcess teamProcess){
this.teamProcess = teamProcess;
}
public abstract String teamName();
public void process(){
System.out.println("欢迎收看---->"+teamName()+"比赛");
teamProcess.wonderful();
}
}
public abstract class TeamProcess {
// 本场最佳镜头
public abstract void wonderful();
}
public class Team extends NBAProcess {
public Team(TeamProcess teamProcess) {
super(teamProcess);
}
@Override
public String teamName() {
return "快船";
}
}
public class CP3TeamProcess extends TeamProcess {
@Override
public void wonderful() {
System.out.println("空接之城");
}
}
public class OKCTeamProcess extends TeamProcess{
@Override
public void wonderful() {
System.out.println("威少战斧劈扣");
}
}
/***
* 1. 继承有多个, 需要更加的细化和颗粒化来处理。 动态。
*
* 使用场景: 主要用来处理, 需要多层的细化,使你的功能点更多的颗粒化,同时你的业务需求是变动的,
* demo场景: 1. NBA播放比赛流程。 2. 细化每天播发哪一场球赛流程
*
* 注意: 在这里 动态的业务用的是抽象类,已属性的形式来赋予。当然我们也可以用接口的形式,把接口作为
* 方法的参数传入进来, 但是我们已抽象类的形式可以更好的约束子类在创建的时候(构造器的时候)
* 更加的清晰。
*/
public class Main {
public static void main(String[] args){
// 快船比赛
CP3TeamProcess cp3 = new CP3TeamProcess();
// 雷霆比赛
OKCTeamProcess okc = new OKCTeamProcess();
// 这里的cp3和okc代表的就是不同的业务。
NBAProcess nba = new Team(okc);
nba.process();
}
}
public abstract class NBAProcess { private TeamProcess teamProcess; public NBAProcess(TeamProcess teamProcess){ this.teamProcess = teamProcess; } public abstract String