그래서 구현이 아닌 인터페이스로 코드를 작성하려고합니다. 그래서 저는 Employee에서 파생 된 객체를 반환하는 팩토리를 가지고 있습니다. 그래서이 객체들은 Developer : Employee, Secretary : Employee 등과 같은 개발자 일 수 있습니다.파생 클래스에서 속성 추가
그래서 FirstName, LastName, Email 등의 모든 공유 속성을 기본 클래스 (Employee)에 넣습니다.
그리고 각 유형에 해당하는 모든 속성을 해당 유형에만 넣어야합니다. 그래서 개발자는 Skills, ProgrammingLanguages 등과 같은 속성을 가지지 만 구체적인 유형의 개발자를 사용하지 않으면 Employee 객체에서 이러한 속성에 액세스 할 수 없습니다.
Employee employee = new EmployeeFactory.CreateEmployee(EmployeeType.Developer);
employee.ProgrammingLanguages = "C#, Java, C++"; <-- compile error
이 문제를 해결하는 가장 좋은 방법은 무엇입니까? 반사...?
이 경우에는 과제 전에 백업해야한다고 생각합니다. – asawyer
그런 경우 파생 클래스에서 명시 적으로 속성에 액세스하고 있기 때문에 기본 클래스에 대해 코드를 작성하는 것은 의미가 없습니다 –
리플렉션 방식으로 이동하려는 경우 .NET 4에서 dynamic 키워드를 사용할 수 있습니다. 코드를 더 깨끗하게 보일 것입니다. –