C++/CLI를 사용하여 상태 디자인 패턴을 구현하려고합니다. 이 패턴을 사용하려면 State 클래스가 Context의 친구 여야합니다. 하지만 C++/CLI는 친구 클래스를 허용하지 않습니다. 나는 이것이 C#에서도 마찬가지라는 것을 알고있다. 누구든지 C++/CLI 또는 C#으로 상태 패턴을 구현 했습니까? 친구 수업이 없으면 어떻게 생각하는지 알고 싶습니다.C++/CLI 또는 C#을 사용하여 상태 디자인 패턴 구현
0
A
답변
0
0
State 클래스를 Context 클래스의 친구로 지정하면 State 패턴을 구현하는 데 요구 사항이 적용되지 않습니다. Wikipedia는 친구 한정자를 사용하지 않고 implementation입니다.
0
상태를 하위 클래스로 유지 한 다음 상태가 변경되면 하위 클래스 개체를 다른 상속 유형으로 바꿀 수 있습니다.
class YourClass
{
private MyEnum _myStateEnum; // Wrap this with a public property
private MyInnerClass _myStateLogic; // Change this with appropriate type when above changes
public void AnExampleMethod()
{
_myStateLogic.AnExampleMethod();
}
internal abstract class MyInnerClass
{
public virtual abstract void AnExampleMethod();
}
internal class MyOtherInnerClass1: MyInnerClass
{
public override void AnExampleMethod() { }
}
internal class MyOtherInnerClass2: MyInnerClass
{
public override void AnExampleMethod() { }
}
}
관련 문제
- 1. 외관 디자인 패턴 - 구현
- 2. 상태 모델 디자인 패턴
- 3. GOF 상태 패턴 상태 전환 구현 문제
- 4. Ada에서 디자인 패턴 참조 구현?
- 5. 더미 구현 디자인 패턴 이름
- 6. Java에서 Ruby 로의 상태 디자인 패턴
- 7. "저널링"또는 "트랜잭션"디자인 패턴?
- 8. 상태 디자인 패턴 - ASP .NET Webform
- 9. 디자인 패턴 작성 또는 상속?
- 10. 제품 디자인 패턴
- 11. 디자인 패턴 - 전략 패턴
- 12. 인벤토리를위한 외관 디자인 패턴
- 13. 직렬화를위한 클래스 디자인 - 아이디어 또는 패턴?
- 14. 디자인 패턴 선택
- 15. 디자인 패턴
- 16. .net 디자인 패턴 질문
- 17. 어셈블리 언어의 디자인 패턴
- 18. 트래킹/상태를위한 디자인 패턴
- 19. PHP 디자인 패턴
- 20. 여러 서비스를위한 디자인 패턴
- 21. 액티브 레코드 - 디자인 패턴 또는 모듈이란 무엇입니까?
- 22. Zend_Form와 OOP 디자인 패턴
- 23. MVVM 디자인 패턴
- 24. 구문 강조 디자인 패턴
- 25. Android MVC 디자인 패턴
- 26. 디자인 패턴 질문
- 27. 어댑터 패턴 구현
- 28. 트랜잭션 디자인 패턴
- 29. 디자인 패턴 비교
- 30. ASP.NET MVC를 사용하여 Oberver 패턴 구현
C#에는 동일한 어셈블리의 코드에만 액세스 할 수있는 '내부'가시성이 있습니다. – CodesInChaos