현재 확장 기능보다 선호되는 코드를 읽은 후 코드를 리팩토링하려고합니다. 현재 Scene에 Object를 추가하는 함수를 만들려고합니다.Java "instanceof"는 여러 목록에 추가합니다.
public void add(Object o) {
if(o instanceof Updatable)
updatables.add((Updatable) o);
if(o instanceof Removable)
removables.add((Removable) o);
if(o instanceof Renderable)
renderables.add((Renderable) o);
if(o instanceof Collidable)
collidables.add((Collidable) o);
}
: 더 나은 각 개체가 무엇인지 정의하기 위해, 등 업데이트, 렌더링을위한 목록,
private List<Updatable> updatables;
private List<Removable> removables;
private List<Renderable> renderables;
private List<Collidable> collidables;
내가 지금처럼 내 장면 클래스로 함수를 만들고 싶어 여러 목록이있다
마찬가지로 나는 유사한 제거 함수를 만들 것입니다. 내 질문은 instanceof의 함정에 대해 들어 봤기 때문에 이것이 잘못된 코딩 사례인지, 그리고 둘째로 이것이 주위에 방법이 있는지/인스턴스를 간단하게 추가하기 위해 코드를 재구성하는 것인가? 모든 목록에 인스턴스를 추가 할 필요가 없으며 매번 인스턴스에 속한 인스턴스를 정의해야합니다. 당신이 코멘트에서 언급 한 바와 같이 add(Updateable u), add(Removable r),
등
많이. [예를 들면 (https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=site:stackoverflow.com+java+instanceof+code+smell)은 –