myObject에서 BaseClass를 가져 오는 쉬운 클래스 디자인이 있습니다.상속 된 클래스의 매개 변수를 사용하는 모범 사례 생성자
public abstract class BaseClass
{
public BaseClass(myObject parameter)
{
// ...
}
}
public class ChildClass : BaseClass
{
}
이제 내 문제는 공개 BaseClass에서 상속하여 내 프로그램을 확장 가능하게 만들고 싶습니다. 따라서 생성자를 만들 수 있습니다. 실패로 이어질 생성자를 만들 수 있습니다.
public ChildClass() :base(new myObject()){...}
자신의 생성자로 상속 된 클래스를 방지 할 수 있습니까? 실제로 ChildClass의 생성자는 전혀 피하기를 원합니다. 이것이 가능한가? 그런 다음 팩토리를 사용하여 Initialize 메서드를 제공 할 수 있습니다. 아니면 무언가 불가능한 것입니다. 코드를 알고 있어야합니다.
생성자가 상속되지 않으며 _must_ 클래스에 생성자가 있습니다. 생성자를 정의하지 않으면 매개 변수없는 생성자가 내포됩니다. 정확히 어떤 상황을 피하려고합니까? –
작성자가 작성되지 못하도록 할 수있는 방법은 없습니다. 물론 팩토리 패턴을 사용하고 전용 생성자 만 만들고 일부 IInitializable 인터페이스 또는 뭔가를 구현하는 데 동의 할 수 있습니다. – ryanyuyu
좋아, 이제 그들은 생성자가 있어야하지만, 특정 매개 변수가있는 생성자 하나만 허용하고 싶습니다. 구조체가 매개 변수없는 생성자를 허용하지 않았습니다. – Matt