SOLID 원칙 설명 — (I)

인터페이스 분리 원리

인터페이스는 클래스가 지원하지 않는 기능을 구현하도록 강요해서는 안 됩니다. 즉, 더 큰 인터페이스는 지원을 제공하기 위해 더 작은 인터페이스로 분할되어야 합니다.

샘플 시나리오

AreaCalculator 클래스 와 동일한 시나리오를 사용 하고 새 기능을 추가해 보겠습니다. 이번에는 사용자가 Cube, Cuboid 등과 같은 도형의 부피 합계를 원합니다.

서투른 글

생성하는 모든 모양은 볼륨 메서드를 구현해야 하지만 사각형은 평평한 모양이고 볼륨이 없다는 것을 알고 있으므로 이 인터페이스는 Square 클래스 가 사용하지 않는 메서드를 구현하도록 강제합니다.

이는 인터페이스 분리 원칙을 위반합니다.

잘 쓰여진

이 위반을 해결하려면 IShape3D라는 새 인터페이스를 만들어 부피가 있는 모양을 처리하고 IShape 인터페이스를 그대로 유지하여 2D 모양을 처리해야 합니다.

주요 이점

  1. 높은 응집력 — 더 나은 이해 가능성, 견고성.
  2. 낮은 결합도 — 더 나은 유지보수성, 높은 변화 저항성.
  3. 클래스는 사용하지 않는 인터페이스를 강제로 구현하지 않습니다.

Suggested posts

내가 가장 많이 사용하는 코딩 리소스

내가 가장 많이 사용하는 코딩 리소스

이번 주에 저는 일일 이메일 목록의 회원으로부터 이메일을 받았습니다. 그들은 알고 싶어했습니다. 매일, 매주, 매월 어떤 리소스를 방문합니까? 좋은 질문입니다! 제 작업 흐름과 제가 사용하는 주요 리소스에 대한 통찰력을 공유하게 되어 기쁩니다.

하이퍼모던 터미널 도구 상자

하이퍼모던 터미널 도구 상자

2023년에 표준을 설정하는 터미널, 셸 및 명령줄 도구. 모든 개발자는 터미널을 사용합니다. 어떤 사람들에게는 전체 작업 흐름이 터미널입니다 이 게시물에서는 2023년에 표준을 설정하는 터미널, 셸 및 명령줄 도구인 Hypermodern Terminal Toolbox를 소개합니다 터미널 에뮬레이터로서의 Kitty Kitty는 터미널 에뮬레이터입니다. 그놈 터미널의 대안입니다 , Alacritty 또는 Windows 터미널.

Related posts

그 위협 아카이브: Vol 7 블랙 바스타

그 위협 아카이브: Vol 7 블랙 바스타

오늘날의 상호 연결된 세계에서 사이버 공격의 위협은 그 어느 때보다 만연해 있습니다. 사이버 범죄자와 국가 행위자는 지속적으로 취약점을 악용하고 귀중한 데이터를 도용하여 모든 규모의 조직에 상당한 위험을 초래합니다.

위험한 대화

위험한 대화

우리가 이 행성에서 계속 번성하고 싶다면 위험한 대화를 해야 할 것입니다. 우리가 한 것, 우리가 하고 있는 것, 그리고 현재 우리가 계속하기로 설정한 것(또는 할 계획인 것)에 도전하는 것들.

안전한 작업 환경 조성

안전한 작업 환경 조성

“그는 내가 위험에 처했을 때 나를 지켜줄 것입니다. 그가 나를 그의 천막 안에 숨길 것이다.

도메인 이름에 대한 정보 찾기

Brian P. Hogan의 Small, Sharp 소프트웨어 도구에서 발췌

도메인 이름에 대한 정보 찾기

facebook.com에 요청하면 컴퓨터가 도메인 이름을 조회하여 해당 도메인 이름을 IP 주소로 변환하므로 컴퓨터가 해당 연결을 만들 수 있습니다.