자식 생성자에서 가져온 값이 필요하므로 생성자에서 자식 메서드로 템플릿 메서드를 호출하는 자식 클래스를 확장하는 자식 클래스가 필요합니다.템플릿 메서드는 자식 생성자에 선언 된 객체를 필요로합니다.
어떻게 부모 생성자 (푸, 여기에 내가 진짜 푸 클래스의 변경을 할 수 없습니다.) 변경하지 않고, 같은 것을 할 수있다 : 나는 년을 aValue를 넣어 경우에도 여기에
public abstract class Foo{
public Foo(){
register();
}
public abstract void register();
public void aMethod(int aValue){
// body
}
}
public class Bar extends Foo{
public Foo(int aValue){
// body
}
register(){
aMethod(aValue);
}
}
을 필드에서 aValue도 생성되지 않습니다.
aMethod(aValue);.
문제를 어떻게 해결할 수 있습니까?
나는 ULM이라는 어떤 패턴을 찾고 있습니다.
기껏해야 스케치 인 호출 하위 클래스 메서드에 대해 +1. 그리고 직면하자, 당신은 대표가 필요합니다. –
수퍼 클래스는 개인 프레임 워크에서 사용하기 때문에 작업에 사용하며 클래스는 읽기 전용입니다. 나는 그것이 위험한 습관이라는 것을 알고 있지만, 나는 더 나은 길을 찾지 못했다. 아마도 그것을하는 더 좋은 방법이있을 것인가? –
@ Pier-alexandreBouchard : 더 이상 문맥없이 말할 수는 없습니다. 수업이 근본적으로 잘못 설계된 경우 디자인 수정을 캠페인해야합니다. 그렇지 않으면 기본적으로 목적에 맞는 소리가 들리지 않습니다 ... –