01. 왜 디자인 모드 가 필요 한가

2903 단어
일 하 러 나 온 지 1 년 반 이 되 었 는데, 한 문외한 이 천천히 이 업계 에 들 어 왔 다.프로 그래 밍 의 기 음 교예 도 일부 배 웠 다. 한 가지 유형, 한 인터페이스의 디자인 에 대해 몇 가지 배 웠 지만 결국은 알 지 못 했다. - 디자인 모델 은 신성 한 단어 인 것 같 고 만 날 수 없 을 정도 로 신성 하 다.
사실은 졸업 할 때 에 대해 한 번 베 꼈 고 깊이 이해 하지 않 았 다. 지금 은 몇 개의 명사 만 기억 하고 있다. 예 를 들 어 공장 모델, 장식 자 모델, 단일 모델 등 단어 만 기억 하고 그들의 실현 에 대해 그들의 응용 장면 은 전혀 이해 하지 못 한다.작업 후에 운영 감시 라 는 프로젝트 를 썼 습 니 다. leader 는 공장 모델 을 추앙 한 다음 에 저 는 공장 모델 의 실현 을 썼 습 니 다. 이 모델 의 유일한 기능 은 서로 다른 표 이름 을 구분 한 다음 에 배경 sql 로 하여 금 서로 다른 표 에서 관련 내용 을 조회 하 게 하 는 것 입 니 다.사실 이것 은 전단 의 option 만으로 실현 할 수 있 는 것 이다. 하필 이면 디자인 모델 을 사용 해 야 한다. 이것 은 분명히 과도 한 디자인 이 고 그 다음 에 비판 을 받 았 다. 지난 일 은 돌 이 킬 수 없다!그리고 디자인 모델 을 내 려 놓 고 평소 첨삭 에 따라 코드 를 썼 다.물론 이것 은 충분 하지 않 습 니 다. 업무 코드 만 쓰 면 성장 하지 못 합 니 다. 지금 젊 을 때 많이 보고 많이 배우 고 많이 생각해 보 세 요.
그렇다면 왜 디자인 모델 을 배 워 야 합 니까?나 는 많은 사람들 이 이런 문제 가 있 을 것 이 라 고 생각한다. 나 는 신출내기 로 서 다음 과 같은 몇 가지 사 고 를 한다. 아마도 성숙 하지 않 을 것 이 고 정확 한 견해 도 아니다.
우선 디자인 모델 이 무엇 인지 알 아야 합 니까?이 단 어 는 원래 건축학 에서 나 온 것 으로 건축학 의 용어 로 건축 이 설계 건설 과정 에서 의 기준 이다. 예 를 들 어 들보 의 철근 이 얼마나 필요 하고 시멘트 가 얼마나 필요 한 지 등 이다.한편, GoF 가 정의 한 디자인 모델 은 소프트웨어 공학 에서 재 활용 할 수 있 는 코드 를 쓰 는 방식 으로 후자 가 정의 한 명성 이 전자 가 정의 한 명성 보다 크기 때문에 디자인 모델 은 보통 소프트웨어 의 디자인 모델 을 말 하 는데 소프트웨어 공학 의 의미 이다.
그리고 우 리 는 왜 디자인 모델 을 사용 해 야 합 니까?
첫째, 소프트웨어 코드 의 재 활용 을 해결 하 는 것 입 니 다. 모두 가 게 을 러 서 중복 되 는 코드 를 쓰 고 싶 지 않 습 니 다. 한 번 쓸 수 있 는 것 은 두 번 쓰 지 않 습 니 다.
둘째, 해결 하 는 것 은 수요 의 변동 성 이다. 에서 더러 운 코드 의 모델 은 산탄 식 변화 이다. 바로 내 가 수 요 를 수정 하 는 것 이다. 만약 에 같은 코드 가 공사 목록 의 모든 곳 에 분포 된다 면 나 는 모든 곳 에서 찾 아야 한다. 이것 은 문 제 를 가 져 올 것 이다. 만약 에 내 가 다 찾 지 못 했다 면?그럼 다 못 고 친 거 야?두 번 째 는 만약 수요 가 다시 변동 한다 면 나 는 하나씩 찾 아야 한다. 너무 번거롭다.
셋째, 아이디어 와 사 고 를 제공 합 니 다. 만약 에 다른 사람의 인 터 페 이 스 를 연결 해 야 한다 고 가정 하면 다른 사람의 인 터 페 이 스 를 연결 하 는 것 을 제외 하고 다른 사람의 인터페이스 에 데 이 터 를 쓰 는 전환 이 필요 합 니 다. 이 럴 때 당신 의 업무 코드 에 인 터 페 이 스 를 직접 연결 하지 못 하고 다른 사람의 인터페이스 에 Manager 를 밀봉 해 야 합 니 다. 여기 서 사용 하 는 것 은 대리 모델 입 니 다.다른 사람의 인 터 페 이 스 를 실현 하 는 것 외 에 다른 사람의 인 터 페 이 스 를 대리 하여 자신의 기능 을 실현 한다.
넷 째, 하나의 공 통 된 언어 를 제공 합 니 다. 모든 분야 에 그들의 용어 가 있 고 그들의 언어 구성 이 있 습 니 다. 물리학 상의 파장 이중성 은 바로 하나의 용어 로 빛 이 파동 성과 입자 성 을 가 진 다 는 것 을 말 합 니 다.이런 용 어 를 모 르 면 한 분 야 를 이해 하 는 데 큰 장애 가 있다.소프트웨어 공학 에서 그렇지 않 은 적 이 있 습 니까? 많은 오픈 소스 프로젝트 들 이 디자인 모델 을 미 끄 럽 게 놀 았 습 니 다. 예 를 들 어 우리 의 일반적인 Logger 등 입 니 다.
private static final Logger LOGGER = LoggerFactory.getLogger("Xxx.class");

짧 은 코드 는 공장 모델 을 사용 합 니 다. 공장 모델 을 모른다 면 소스 코드 를 보 러 가 는 것 도 안개 입 니 다. 무슨 말 인지 모 르 겠 습 니 다.
다섯 째, 물론 가장 중요 한 것 입 니 다. 면접 에서 손 으로 쓴 단일 모델, 단일 모델 의 원 리 를 자바 에서 실현 하고 자바 에서 대리 모델 의 실현, 동적 대리 모델 의 실현 등 면접 문제 가 끊임없이 출제 됩 니 다. 이것 은 바로 돈 과 관련 된 문제 입 니 다. 만약 에 돈 이 지나 가지 않 는 다 면 공부 할 필요 가 없습니다.
마지막 으로 디자인 모델 의 학습 노트 는 제 가 처음으로 공개 한 노트 로 독서 노트 에 해당 합 니 다. 그러나 저 는 제 생각 을 통 해 프로젝트 에서 쌓 은 경험 을 통 해 다른 사람의 소스 코드 에서 배 운 것 을 보고 가능 한 한 이런 지식 을 분명하게 말 하 겠 습 니 다.저 에 게 도 학습 입 니 다. 빠 진 부분 이 있 거나 부족 한 점 이 있 으 면 앞으로 의 사고 와 여러분 의 지적 이 필요 합 니 다.

좋은 웹페이지 즐겨찾기