설계 원칙: 중복 방식 및 중복 제거 방법

5103 단어 설계 원칙

의식적 반복(게으름의 반복)


문제: A곳의 코드와 B곳의 코드는 매우 비슷하지만 완전히 같지 않다.
원인: 개발자의 게으름이나 기능 부족은 카피식 개발이다.
방안: 템플릿 방법 모델이나 리셋 메커니즘(함수 지침, 의뢰와 인터페이스)을 도입한다.

템플릿 메서드 모드

 1 public abstract class TemplateClass
 2 {
 3     public void Do()
 4     {
 5         DoCommonStep1();
 6         DoCustomStep2();
 7         DoCommonStep3();
 8     }
 9 
10     private void DoCommonStep1(){}
11     protect abstract void DoCustomStep2(){}
12     private void DoCommonStep3(){}
13 }

리콜 메커니즘

1 public class TaskClass
2 {
3     public void Do(Action callback)
4     {
5         DoCommonStep1();
6         callback();
7         DoCommonStep3();
8     }
9 }

무의식적으로 반복(자신을 반복)


문제: A곳의 코드와 B곳의 코드는 비슷하지 않지만 완성된 임무는 비슷하다(지식이 중복되었다).
원인: 기능 부족, 지식 라이브러리 부족, 깊은 사고 부족.
방안: 자신의 기술 향상;자신의 지식고 정리하기;자신의 추상적 사유 에너지를 많이 단련하면 어떤 문제는 달라 보이지만 기술적으로 추상을 하면 나무의 두루 훑어보고 보여주는 것과 같은 일치성을 발견할 수 있다.

무의식적으로 반복(다른 사람 반복)


문제: A곳의 코드와 B곳의 코드는 비슷하지 않지만 완성된 임무는 비슷하다(지식이 중복되었다).
원인: 의사소통이 부족하고 메커니즘이 부족하다.
방안: 소통을 많이 하고 내부에서 소통을 많이 하며 지역사회에서 소통을 많이 한다.양호한 소통과 복용 체제를 구축하고 체제와 문화적으로 복용을 장려한다.

직책이 너무 많은 방법


문제: A 방법은 퀘스트 T1과 T2를 완성하고, B 방법은 퀘스트 T2와 T3를 완성하며, T2를 독립된 방법으로 추출하지 않았습니다.
원인: 게으름.
방안: 공공 하위 방법을 추출합니다.

직책이 너무 많은 상속 체계


문제: Class A 완료 작업 M 및 N, A 의 Class A 1 완료 작업 M1 및 N1, A 의 Class A 2 완료 작업 M1 및 N2, M1 중복이 발생했습니다.
원인: 직책이 너무 많다.
방안: 전략 모델이나 다리 모델을 도입한다.
1 public class A
2 {
3        public void N(){}
4     
5        public void M()
6       {
7          this.  .M();
8        }
9 }

명백한 주석


문제: 프로그램에 쓸데없는 주석이 널리 퍼져 있습니다.
원인: 강박증.
방안: 해석성을 갖춘 변수나 하위 방법을 도입한다.

인터페이스, 영역 및 데이터베이스에 대한 지식 중복


문제: 데이터베이스 필드를 추가하려면 영역 모델과 인터페이스를 수정해야 합니다.
원인: 기술력.
방안: 메타데이터 구동 개발을 도입하고 코드 생성기나 메타데이터 프로그래밍을 사용한다.

문서의 지식 중복


질문: 문서의 지식이 코드의 지식과 일치하지 않습니다.
원인: 절차와 제도 문제.
방안: 현재 좋은 생각을 하지 못했다(미속).

좋은 웹페이지 즐겨찾기