Я занимаюсь разработкой небольшой JAVA-игры, и у меня возникла проблема со сплоченностью и связью в концепции ООП.
У меня есть класс с именем Locations, как показано ниже
public class Location {
private int positionX;
private int positionY;
public Location(int positionX, int positionY){
this.positionX=positionX;
this.positionY=positionY;
}
public void updateLocation(int positionX, int positionY){
this.positionX=positionX;
this.positionY=positionY;
}
public String getLocation(){
return (positionX+","+positionY);
}
public int getLocationX(){
return this.positionX;
}
public int getLocationY(){
return positionY;
}
public void setLocationX(int positionX){
this.positionX=positionX;
}
public void setLocationY(int positionY){
this.positionY=positionY;
}
}
И у меня естьинтерфейс с именем locatable как ниже
public interface Locatable {
public Location getPosition();
public void setPosition(Location position);
}
И абстрактный класс, реализующий вышеупомянутый интерфейс как ниже
public abstract class GameObject implements Locatable{
protected String name;
protected Location position;
public GameObject(String name, Location position){
this.name=name;
this.position=position;
}
//------------- getter & setters for positions----------
@Override
public Location getPosition(){
return position;
}
@Override
public void setPosition(Location position){
this.position=position;
}
//------------------------------------------------------
//------------------------------------------------------
//------------- getter & setters for name ---------------
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
//------------------------------------------------------
//------------------------------------------------------
}
И класс, который расширяет вышеупомянутый класс
public class Lotus extends GameObject{
private int no_of_Petals=100;
public Lotus(String name,Location position){
super(name,position);
}
//-----getters & setters for no of petals --------
public void setNoOfPetals(int no_of_Petals){
this.no_of_Petals=no_of_Petals;
}
public int getNoOfPetals(){
return no_of_Petals;
}
//------------------------------------------------
//------------------------------------------------
}
Поэтому я не уверен, является ли использование класса Location во всем моем коде плохой практикой кодирования. Как это тесно связано?или это нормально?Пожалуйста, позвольте мне уточнить этот вопрос, так как я все еще изучаю ООП.если вы проголосуете против этого вопроса, пожалуйста, перед тем, как сделать это, прокомментируйте, где я неправ ..