나는 MyLib
이라는 클래스로 항목의 인벤토리를 구축 중이므로 라이브러리 초기화에는 상당한 시간이 걸리고 한 번만 수행하면됩니다. 그런 다음 해당 항목 클래스를 사용하여 인벤토리의 모든 항목 인스턴스를 임의로 만들 수 있지만 라이브러리 인스턴스화가 없으면 항목 인스턴스화를 허용해서는 안됩니다. 이 방법이 가능하다는 것을 알 수있는 유일한 방법은 아래와 같이 라이브러리 클래스 안에 항목 클래스를 중첩시키는 것입니다. 그러나이 작업을 수행하는 더 좋은 방법이 있는지 궁금합니다.중첩 클래스를 사용하는 대신 C#으로 하위 개체를 만드는 방법이 있습니까?
public class MyLib
{
protected string LibFilePath;
public MyLib()
{
/* Time-consuming Library initialization code here
needs to be done only once
LibFilePath initialized
etc.
*/
}
public class LibItem1
{
/* Must ensure that MyLib is initialized
* Must have access to Library information like LibFilePath, etc.
*/
}
}
[Factory Pattern] (http://en.wikipedia.org/wiki/Factory_method_pattern)을 살펴 봐야합니다. 그것은 당신의 문제를 해결할 수 있습니다. 이 방법을 제안하는 이유는 지금 작성된 방식이기 때문에 초기화가 있다는 사실을 숨기고 있기 때문입니다. 팩토리 패턴을 사용하면 일부 논리가 발생하는 것으로 알려져 있습니다. –