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

취하기의 아이의 첫 번째 책

취하기의 아이의 첫 번째 책

(경고- 이것은 유쾌하게 전복하려는 풍자입니다. 절대 어린이용이 아닙니다.) 당신은 엄마와 아빠가 부엌에 숨어서 그 냄새나는 담배를 피우는 것을 본 적이 있습니다. 그들은 당신에게 말합니다.

빨간 머리 소녀의 솔로 퍼포먼스

Hayden의 임무를 맡은 Katie는 자위하는 자신을 촬영합니다.

빨간 머리 소녀의 솔로 퍼포먼스

Hayden이 함께 저녁을 보낸 후 Katie를 대학 기숙사로 데려다 준 것은 자정 이후였습니다. 그녀는 아침에 일찍 수업이 있었고 전날 밤 그와 함께 지낸 후 다시 옷을 갈아입지 않았습니다.

느린 침식: 사람들이 경력을 낭비하는 방식 공개

느린 침식: 사람들이 경력을 낭비하는 방식 공개

오늘날과 같이 급변하고 경쟁이 치열한 세상에서 경력은 개인의 성장, 재정적 안정 및 전반적인 삶의 만족도에 중요한 역할을 합니다. 그러나 많은 사람들은 침체와 불만족의 끊임없는 순환에 휩싸여 직업 생활에서 점차 쇠퇴하고 있습니다.

미디어 재검토: McChesney의 다섯 가지 진실과 커뮤니케이션의 미래

오늘날의 초연결 세계에서 미디어 시스템은 여론을 형성하고 결과적으로 민주적 의사 결정에 중추적인 역할을 합니다. 의사소통의 정치경제학에 대한 심오한 분석에서 학자인 Robert McChesney는 기존의 통념에 도전하고 그가 미디어에 대한 "다섯 가지 진실"이라고 부르는 것을 제시합니다.