[디자인 모델 원칙] 1 회: 단일 직책 원칙

5687 단어 디자인 모드
1. 머리말
단일 직책 원칙 (SRP, Single Responsibility Principle) 은 직책 분 리 를 강조 하고 어느 정도 에 직책 에 대한 이 해 는 서로 다른 결합 관 계 를 구성 하 는 디자인 관건 이다.
2. 경전 인용
핵심 사상: 한 가지 유형 은 한 가지 일 만 하 는 것 이 좋 고 그 변 화 를 일 으 키 는 원인 만 있다.
단일 직책 원칙 은 낮은 결합, 높 은 내부 집적 이 대상 을 대상 으로 하 는 원칙 적 인 파생 으로 볼 수 있 으 며, 직책 을 변 화 를 일 으 키 는 원인 으로 정의 하여 내부 집적 성 을 향상 시 켜 변 화 를 줄 이 는 원인 으로 볼 수 있다. 직책 이 너무 많 고 변화 하 는 원인 도 많아 직책 간 의 의존 을 초래 하고 서로 영향 을 주어 내부 집적 성과 결합 도 를 크게 손상 시 킬 수 있다.
일부 이해:
  • 말 하 는 직책 은 일반적으로 기능 을 가리 키 지만 단일 직책 원칙 은 변 화 를 일 으 키 는 원인 에 의 해 결정 되 는 것 이지 직책 에 의 해 결정 되 는 것 이 아니다. 이것 은 중 시 를 불 러 일 으 키 고 착각 하지 말 아야 한다.
  • 한 가지 유형 은 한 가지 일 만 하 는 것 이 좋 습 니 다. 이것 은 직책 의 입도 구분 입 니 다. 크 든 작 든 한 가지 방법, 크 든 한 무리, 심지어 많은 다른 모듈 과 관련 되 는데 이런 직책 이 있 으 면 됩 니 다. 바로 높 은 내부 집적 입 니 다.
  • 한 가지 유형 은 한 가지 일 만 하 는 것 이 좋 습 니 다. 일이 적 을 수록 안정 적 이기 때문에 디자인 해 야 할 유형 은 가능 한 한 간단 하고 복잡 하 게 디자인 할 수 있 습 니 다. 평소에 말 을 많이 할 수록 틀 릴 수록 바로 이 이치 입 니 다.
  • 평소에 생활 하면 서 말 하 는 '넓 고 정교 하지 않 은 것 이 아니 라 한 가지 일 에 전념 해 야 더 잘 할 수 있다', '네가 해 야 할 일 을 하고 관여 하지 말 아야 할 일 을 하지 말 라. 쓸데없는 일 에 참견 하지 말 라. 그렇지 않 으 면 문 제 를 일 으 킬 것 이다' 등 이 모두 이런 규칙 을 나타 낸다.
  • 3. 반성 활용
    하나의 예 를 보면 다음 과 같다.
        //  
    
        public class Light
    
        {
    
            public void Shine()
    
            {
    
                Console.WriteLine("    ");
    
            }
    
    
    
            public void Black()
    
            {
    
                Console.WriteLine("    ");
    
            }
    
    
    
            public void TurnOn()
    
            {
    
                Console.WriteLine("    ");
    
            }
    
    
    
            public void TurnOff()
    
            {
    
                Console.WriteLine("    ");
    
            }
    
        }

    전등 의 대상 안에 네 가지 방법 이 있 습 니 다. 전등 을 켜 고 끄 는 것, 그리고 전등 의 상태 로 출력 하 는 것 을 보 았 습 니 다. 이때 전등 이 너무 독 하 다 는 것 을 알 게 되 었 습 니 다. 대부분 불 은 켜 거나 끄 는 기능 이 없 었 습 니 다. 물론 있 습 니 다. 그러나 이것 은 스위치 의 기능 으로 나 누 어야 합 니 다. 전등 은 이런 기능 을 갖 추 지 못 했 습 니 다. 전등 은 빛 이 나 거나 빛 이 나 지 않 습 니 다. 전등 이 권력 을 넘 으 면 스위치 가 화 를 냅 니 다. 우 리 는스위치 를 추가 하여 기능 을 분리 하 는데 이때 전등 이 켜 지 거나 켜 지지 않 으 면 스위치 에 의존한다.
        //  
    
        public class Light
    
        {
    
            public void Shine()
    
            {
    
                Console.WriteLine("    ");
    
            }
    
    
    
            public void Black()
    
            {
    
                Console.WriteLine("    ");
    
            }
    
        }
    
        //  
    
        public class Switch
    
        {
    
            Light light = new Light();
    
    
    
            public void TurnOn()
    
            {
    
                Console.WriteLine("    ");
    
                light.Shine();
    
            }
    
    
    
            public void TurnOff()
    
            {
    
                Console.WriteLine("    ");
    
                light.Black();
    
            }
    
        }

     이 예 는 평소에 틀림없이 그렇게 쓰 지 않 을 것 이다. 단지 이런 뜻 일 뿐이다.
    4. 규칙 제안
    단일 직책 의 원칙 에 대하 여 우리 의 건 의 는:
  • 한 가지 유형 은 그 변 화 를 일 으 키 는 원인 만 있 고 그렇지 않 으 면 재 구성 을 고려 해 야 한다.
  • SRP 는 변 화 를 일 으 키 는 원인 에 의 해 결정 되 고 기능 직책 에 의 해 결정 되 지 않 으 며 신시 도 세 를 신 설 해 야 한다.
  • 테스트 구동 개발 은 합 리 적 인 분리 기능 을 실현 하 는 디자인 에 도움 이 된다.
  • 자료 《 네가 알 아야 할. NET 》 을 조사 하 다.

    좋은 웹페이지 즐겨찾기