단일 책임 원칙은 무엇입니까?

컴퓨터 프로그래밍 및 디자인에서 단일 책임 원칙은 프로그램의 모든 클래스가 더 큰 응용 프로그램에서 하나의 기능 만 수행해야한다는 견해를지지하는 개념입니다. 이 아이디어는 전체 클래스가 단일 책임을 수행하는 데 중점을두고 외부 수업에 거의 의존하지 않기 때문에 캡슐화와 같은 객체 지향 프로그래밍의 이상을 부분적으로 촉진합니다. 동시에, 단일 객체의 기능이 객체가 처리하는 데이터에서 분리되기 때문에 초기 객체 지향 프로그래밍의 일부 개념과 다소 반대적인 것이므로 중앙 데이터를 유지하기 위해 조합 된 많은 객체를 구성해야 할 수도 있습니다. 단일 책임 원칙은 책임 중심 디자인으로 알려진 설계 모델 유형의 기초입니다.

단일 책임 원칙의 예는 전통적인 전화 핸드셋의 형태를 취할 수 있습니다. 일부 설계 원칙은 핸드셋을 볼 것입니다s 전화선에서 입력을 모두 처리하고 스피커에서 출력 전송을 모두 처리하는 단일 객체입니다. 단일 객체에 단일 책임이있는 단일 책임 모델에서 핸드셋은 전화선으로부터 입력을 수신하거나 이어 피스를 통해 데이터를 출력하는 것과 같은 단일 기능을 수행 한 여러 개별 객체로 구성됩니다.

단일 책임 원칙을 사용하여 가능하게하는 장점 중 하나는 매우 높은 수준의 추상화와 모듈성입니다. 핸드셋 예제에서, 전화선의 입력 또는 신호가 사용자에게 출력되는 방식을 인터페이스를 위해 동일한 계약을 준수하는 한 인접 클래스에 영향을 미치지 않고 변경 될 수 있습니다. 또한 각 클래스가 완전히 캡슐화되고 Ver의 의존이기 때문에 특정 구성 요소의 재사용 성이 매우 높을 수 있습니다.y 주변 물체에 대신 한 가지 책임에 초점을 맞추고 있습니다.

단일 책임 원칙이 생성 할 수있는 합병증은 모두 동일한 데이터에서 모두 작동하는 많은 클래스와 객체입니다. 이는 많은 양의 오버 헤드와 복잡한 설계 프로세스를 의미 할 수 있습니다. 또한 프로그램의 단일 부분은 수천 개의 작은 클래스 파일로 구성 될 수 있기 때문에 큰 프로그램을 어렵게 만들 수 있습니다.

단일 책임 원칙이 책임 중심 설계를 통해 적용되는 경우, 데이터 및 데이터를 조작하는 데 사용되는 방법은 설계 목적으로 분리됩니다. 이것은 디자인의 특정 자유, 캡슐화 및 모듈성으로 이어지지 만, 데이터와 한 번에 데이터와 상호 작용하려는 여러 클래스를 용이하게하는 데 사용해야하는 여러 가지 중간 패턴 및 설계를 생성 할 수 있습니다. 반면에, 객체의 데이터와이를 조작하는 데 사용되는 메소드가 모두 묶인 경우그녀는 단일 다중 책임 객체에서 코드가 시스템 스케일, 변경 또는 복잡해지면 수정하기가 더 어려워 질 수 있습니다.

다른 언어

이 문서가 도움이 되었나요? 피드백 감사드립니다 피드백 감사드립니다

어떻게 도와 드릴까요? 어떻게 도와 드릴까요?