《디자인모드의 선》 독서노트-1.0-6대 디자인원칙
1.1 단일 책임 원칙
Single Responsibility Principle
권장 사항:
인터페이스는 반드시 단일한 직책을 수행해야 하며, 유형의 디자인은 가능한 한 한 한 한 가지 원인으로 변화를 일으키도록 해야 한다.
1.2리 대체 원칙
Liskov Substitution Pronciple
정의:
부류가 나타날 수 있는 곳만 있으면 부류가 나타날 수 있고 부류로 바뀌어도 아무런 오류나 이상이 생기지 않는다.
사양:
Liskov Substitution Pronciple
정의:
부류가 나타날 수 있는 곳만 있으면 부류가 나타날 수 있고 부류로 바뀌어도 아무런 오류나 이상이 생기지 않는다.
사양:
> , 。
, ( ),
> , <=
, , 。 。
권장 사항:
이씨로 교체할 때 자류의'개성'을 최대한 피해야 한다. 일단 자류에'개성'이 있으면 이 자류와 부류 간의 관계는 조화되기 어렵다. 자류를 부류로 사용하고 자락의'개성'이 지워진다. 억울하다.하위 클래스를 단독으로 하나의 업무로 사용하면 코드의 결합 관계를 흐리멍덩하게 만들 수 있다. 클래스 교체 기준이 부족하다.
1.3 역치원칙에 의존
Dependence Inversioin Principle
의미:
:
1、
2、Setter
3、
권장 사항:
역치원칙에 의존하는 본질은 추상(인터페이스 또는 추상류)을 통해 개 각종 또는 모듈의 실현이 서로 독립되고 서로 영향을 주지 않으며 모듈 간의 느슨한 결합을 실현하는 것이다.
기본적인 요구는 인터페이스와 추상류는 모두 추상적인 것이기 때문에 추상이 있어야만 역치될 수 있다
Utils 도구 클래스와 자바 구현 클래스의 clone 방법을 주의하십시오
클래스의 계승 층수는 가능한 한 적다
만약 기류가 추상류이고 이 방법이 이미 실현되었다면 자류는 가능한 한 다시 복제하지 말아야 한다.클래스 간의 의존은 추상이다. 추상류의 구체적인 방법을 복제하면 의존의 안정성에 어느 정도 영향을 줄 수 있다.
규칙: 인터페이스는 공공 구조의 실현을 책임지고 클래스의 정확한 업무 논리 실현을 실현하며 적당한 시기에 부류를 세분화한다.
1.4 인터페이스 격리 원칙
Interface Segregation Principle
Java 인터페이스 종류:
정의:
요약:
인터페이스는 가능한 한 세분화하고 인터페이스 중의 방법은 가능한 한 줄여야 한다.단일 직책과 차이점: 심사 각도와 달리 단일 직책은 유형과 인터페이스 직책이 단일하고 중시하는 직책을 요구한다. 이것은 업무 논리적인 구분이다.인터페이스 격리는 인터페이스 방법을 최대한 적게 요구한다.직책이 같고 방문 모듈이 다르다. 가능한 한 여러 개의 전문적인 인터페이스를 사용하고 각 모듈은 서로 다른 인터페이스에 대응한다.
권장 사항:
경험과 상식에 따라 인터페이스의 입도 크기를 결정하고 인터페이스의 입도가 너무 작아 인터페이스 데이터가 급증하여 개발자가 인터페이스의 바다에서 사레가 들렸다.인터페이스의 입도가 너무 크고 유연성이 낮아 맞춤형 서비스를 제공할 수 없어 전체 프로젝트에 예측할 수 없는 위험을 가져온다.
1.5. 디미트의 법칙
Law of Demeter, 최소 지식 원칙(Least Knowedge Principle)이라고도 함
정의:
한 대상은 다른 대상에 대해 최소한의 이해를 가져야 한다.통속적으로 말하면, 하나의 클래스는 자신이 결합하거나 호출해야 하는 클래스에 대해 가장 적게 알아야 한다
네 가지 의미:
이런 방법이 있다. 이 종류에 넣으면 되고, 다른 종류에 넣으면 틀림없다. 그러면 어떻게 평가합니까?만약에 한 방법을 본류에 넣으면 클래스 간의 관계를 증가하지 않을 뿐만 아니라 본류에 부정적인 영향을 미치지 않는다면 본류에 놓아라.
VO:value object
권장 사항:
1.6 개폐 원칙
Open Closed Principle
정의:
하나의 소프트웨어 실체, 예를 들어 클래스, 모듈과 함수는 확장 개발, 수정에 대해 닫아야 한다.
사용 방법:
** 1. 추상적 구속**추상은 한 조의 사물에 대한 통용적인 묘사로 구체적인 실현이 없으면 매우 많은 가능성을 가지고 수요의 변화에 따라 변화할 수 있음을 나타낸다.따라서 인터페이스나 추상류를 통해 변화할 수 있는 행위를 제약할 수 있고 확장에 대한 개방을 실현할 수 있다.다음과 같은 세 가지 의미가 있습니다.
1.1. 인터페이스나 추상 클래스의 제약을 통해 확장에 대해 경계를 한정하고 인터페이스나 추상 클래스에 존재하지 않는public 방법을 허용하지 않는다.1.2.파라미터 유형, 인용 대상은 실현 클래스가 아닌 인터페이스나 추상 클래스를 최대한 사용한다.1.3.추상층은 가능한 한 안정을 유지하고 일단 확정되면 수정을 허용하지 않는다.
** 2. 메타데이터 제어 모듈 비헤이비어**
메타데이터: 환경과 데이터를 설명하는 데 쓰이는 데이터로 통속적으로 말하면 설정 매개 변수이다.매개 변수는 파일에서 얻을 수도 있고 데이터베이스에서 얻을 수도 있다
** 3. 프로젝트 규약 지정**
구성보다 우수한 규약
** 4. 패키지 변경 사항 **
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.