하나의 독특한 rôle을 갖는 것 입니다.
각 클래스는 역할 이름으로 다시 시작해야합니다. 역할은 사실 문맥과 관련된 동사의 집합입니다.
예를 들면 다음과 같습니다.
파일은 파일의 액세스를 제공합니다. FileManager는 파일 객체를 관리합니다.
파일에서 하나의 자원에 대한 자원 보유 데이터. ResourceManager는 모든 자원을 보유하고 제공합니다.
여기서 "관리"와 같은 일부 동사는 다른 동사 집합을 의미합니다. 동사는 대부분 클래스보다 함수로 생각하는 것이 좋습니다. 동사가 자신의 공통된 맥락을 가진 너무 많은 행동을 암시한다면, 그 자체가 클래스가되어야합니다.
따라서 아이디어는 고유 한 역할을 정의하여 클래스가 무엇을 수행하는지에 대한 간단한 아이디어를 가질 수 있도록하는 것입니다. 이는 여러 하위 역할 (멤버 오브젝트 또는 다른 오브젝트에 의해 수행됨)의 집합 일 수 있습니다.
나는 종종 다른 여러 클래스가있는 Manager 클래스를 빌드합니다. 팩토리, 레지스트리 등과 같은 일종의 그룹 장, 오케스트라 장과 같은 Manager 클래스를 참조하여 다른 사람들이 함께 협력하여 높은 수준의 아이디어를 얻도록 안내하십시오. 그는 하나의 역할을 가지고 있지만 내부의 다른 고유 한 역할을 수행하는 것을 의미합니다. 또한 회사 구성 방식과 같이 볼 수 있습니다. CEO는 순수한 생산성 수준에서 생산적인 회사는 아니지만, 그렇지 않은 경우에는 제대로 협력 할 수 없습니다. 그것이 그의 역할입니다.
디자인 할 때 고유 한 역할을 식별하십시오. 그리고 각 역할에 대해 다른 역할에서 잘릴 수 없는지 다시 확인하십시오. 그렇게하면 Manager가 객체를 작성하는 방식을 간단하게 변경해야하는 경우 간단히 Factory를 변경하고 안심하십시오.