首先,我想说我具有Hibernate和Spring引导的基本经验,但是对于我拥有的项目,我决定使用它们来更好地学习它们。
我目前遇到的问题是,我不知道如何使用JPA /休眠方式在我的应用程序中表示Decorator设计模式,以便将它们保存在同一张表中...我将代码保留在下面。
这个想法是拥有一辆带有某些信息的公共汽车,但是它可以有一条路线和一个驾驶员,但是必须为它们分配装饰设计模式。
提前感谢您的回答!
IBus.java
package com.softeng.finalsofteng.model.decorator;
public interface IBus {
String getTodo();
void setTodo(String placa, int capacidad, String marca);
}
Bus.java
package com.softeng.finalsofteng.model.decorator;
public class Bus implements IBus {
private String placa;
private int capacidad;
private String marca;
public Bus(String placa, int capacidad, String marca) {
this.placa = placa;
this.capacidad = capacidad;
this.marca = marca;
}
public String getPlaca() {
return placa;
}
public void setPlaca(String placa) {
this.placa = placa;
}
public int getCapacidad() {
return capacidad;
}
public void setCapacidad(int capacidad) {
this.capacidad = capacidad;
}
public String getMarca() {
return marca;
}
public void setMarca(String marca) {
this.marca = marca;
}
@Override
public String getTodo() {
return "Placa: " + placa + ",Capacidad: " + capacidad + ",Marca: " + marca;
}
@Override
public void setTodo(String placa, int capacidad, String marca) {
this.placa = placa;
this.capacidad = capacidad;
this.marca = marca;
}
}
BusInfo.java
package com.softeng.finalsofteng.model.decorator;
abstract class BusInfo implements IBus {
protected IBus busInfo;
public BusInfo(IBus busInfo) {
this.busInfo = busInfo;
}
@Override
public String getTodo() {
return busInfo.getTodo();
}
@Override
public void setTodo(String placa, int capacidad, String marca) {
busInfo.setTodo(placa, capacidad, marca);
}
}
BusConductor.java
package com.softeng.finalsofteng.model.decorator;
public class BusConductor extends BusInfo {
private String conductor;
private String[] parametros;
public BusConductor(IBus busInfo, String conductor) {
super(busInfo);
this.conductor = conductor;
}
@Override
public String getTodo() {
return busInfo.getTodo() + addConductor(this.conductor);
}
@Override
public void setTodo(String placa, int capacidad, String marca) {
busInfo.setTodo(placa, capacidad, marca);
}
public String addConductor(String conductor){
return ",Conductor: " + conductor;
}
}
BusRuta.java
package com.softeng.finalsofteng.model.decorator;
public class BusRuta extends BusInfo {
private String ruta;
public BusRuta(IBus busInfo, String ruta) {
super(busInfo);
this.ruta = ruta;
}
@Override
public String getTodo() {
return busInfo.getTodo() + addRuta(this.ruta);
}
@Override
public void setTodo(String placa, int capacidad, String marca) {
busInfo.setTodo(placa, capacidad, marca);
}
public String addRuta(String ruta){
return ",Ruta: " + ruta;
}
}