2013-02-27 6 views
0

나는 다음과 같은 헬스 클럽 시나리오 (BTW C++ 코딩) 한 건강 데이터).상속 계층 구조에서 객체를 만들기위한 단일 또는 다중 추상 팩터 리?</p> <p><img src="https://i.imgur.com/abazqR5.png?1" alt=" UML Diagram "></p> <p>내가 무작위로 고객과 트레이너 객체를 (그래서 모두가 무작위로 생성 된 이름을 가질 것이다 만들려하지만 게스트는 무작위 것 :

저는 다양한 복잡성을 가진 많은 랜덤 생성기를 만들고 싶습니다.

분명히 둘 다 임의의 forename/surname 생성기 기능이 필요합니다. 그러나이 코드를 한 곳에서 어떻게 유지할 수 있을지 잘 모르겠습니다.

랜덤 생성이 필요한 모든 객체에서 사용할 수있는 모든 생성 메소드 (예 : generateForename())가있는 추상 팩터 리를 가질 수 있습니다. 그러나 트레이너가 건강 데이터를 생성 할 수있는 공장에 대한 액세스 권한이 있어야한다.

나는 또한 각 클래스에 추상적 인 팩토리가 있다고 생각했다. 하나는 사람을위한 것이고 하나는 고객을위한 것이고 다른 하나는 게스트를위한 것이고 객체는 해당 팩토리를 전달함으로써 슈퍼 클래스를 생성하지만 상황은 복잡하다.

내 설계가 조금 벗어난다면 용서해 줄 수있다.

당신은 무엇을 제안합니까?

+0

추상 팩토리는 추상 클래스의 패밀리이므로, 아마 하나이면 충분할 것입니다. 참조 : http://en.wikipedia.org/wiki/Abstract_factory_pattern –

답변

1

나는 추상적 인 공장이 당신이 찾고있는 것인지 확신하지 못합니다. 추상 팩토리는 기본 클래스가 같지만 다른 구체적인 인스턴스를 만들어야 할 때 가장 잘 작동합니다. Person의 루트 기본 클래스가 있더라도 실제로는 서로 다른 두 개의 기본 클래스의 파생 클래스를 만들어야합니다.

데이터를 포함하는 클래스와 함께 데이터를 생성하는 메소드를 유지하려고 노력할 것입니다. 이렇게하면 다시 사용할 수 있습니다.

게스트 및 강사에 대한 팩토리 메소드를 작성하면 각각의 기본 클래스에있는 메소드를 사용하여 데이터를 생성 할 수 있습니까? 테스트 물건을 실제 물건에서 멀리 떨어지도록 테스트 별 하위 클래스를 만들 수 있습니까?