[TS] 지금 들을 수 없는 패션 패턴.
13210 단어 TypeScript초학자디자인 모델tech
개시하다
이번에는 파서 모드
Facade Pattern
에 대한 해설을 진행한다.이름 자체를 몰라도 자신도 모르게 사용하게 된다.
파서 모드가 뭐예요?
TECHSCORE
선생님의 해설.프로그램을 만들면 처음에는 아주 작은 물건이라도 점점 커진다.많은 반이 생겨서 서로 관계가 복잡해졌다.클래스를 사용할 때는 그들의 관계를 정확하게 이해하고 정확한 순서 호출 방법을 사용해야 한다.큰 프로그램을 사용하여 처리할 때에는 반드시 관련 여러 종류를 적절하게 제어해야 한다.이 처리를 할'창구'를 미리 준비하면 여러 학급을 개별적으로 통제하지 않더라도'창구'에 대한 요청만 하면 된다.
파케이드 모드는 기존 학급 조합에 사용되는 프로그램을'창'클래스로 만들어 간단하게 사용할 수 있는 모드다.
그나저나 facade는 프랑스어를 어원으로 하는 단어로'건물의 정면'이라는 뜻이다.발음할 때는 파사드의 'サ' 에 중점을 두어야 한다.
'창'이라고 하면 과장된 느낌이 든다. 어쨌든'다수의 처리를 묶는 함수, 방법'을 준비해야 한다.
예제
다음과 같이 문서를 만드는 처리를 생각해 보세요.
먼저 제목 등을 표시하는 머리, 본문을 기재하는 머리, 꼬리의 꼬리 부분 세 부분으로 구성된다.
type User = {
name: string;
}
class UserDB {
// ユーザIDからユーザ情報を取得する
static fetchUser = (userId: string): User => {
// 本来はDBに問い合わせるが簡単のため固定データを返す
return { name: 'てすと次郎' };
}
}
class HeaderBuilder {
// タイトルと著者名を出力する
static write = (title: string, author: string) => {
console.log(`題名:${title}`);
console.log(`著者:${author}`);
}
}
class BodyBuilder {
// セクションを順番に出力する
static write = (sections: string[]) => {
sections.forEach(s => console.log(s + '\n'));
}
}
class FooterBuilder {
// 末尾に更新日時を出力する
static write = () => {
const current : Date = new Date();
console.log(`更新日時:${current.toString()}`);
}
}
// ユーザ情報を取得
const user: User = UserDB.fetchUser('100');
// ヘッダを記載
HeaderBuilder.write('今さら聞けないファサードパターン', user.name);
// 本文を記載
BodyBuilder.write([
'ファサードパターンとは・・・',
'例として挙げられるのは・・・',
'続いて実際のコードを見ていきましょう・・・',
/** 以下略 */
]);
// フッタを記載
FooterBuilder.write();
출력
題名:今さら聞けないファサードパターン
著者:てすと次郎
ファサードパターンとは・・・
例として挙げられるのは・・・
続いて実際のコードを見ていきましょう・・・
更新日時:Fri Nov 13 2020 08:29:26 GMT+0900 (GMT+09:00)
문서 작성 처리를 위해 다양한 레벨이 나타납니다.실제 응용 프로그램을 개발할 때 고려해야 할 일이 늘어나 더 많은 반을 처리해야 한다.
세 번째 모델로 실현하다
이때 처리 창인 '문서 만들기' 를 만들면 매우 편리하다.
바로'파사드 모드'다.
// ドキュメントを作成処理
class DocumentBuilder {
static write = (userId: string, title: string, body: string[]) => {
// ユーザ情報を取得
const user: User = UserDB.fetchUser(userId);
// ヘッダを記載
HeaderBuilder.write(title, user.name);
// 本文を記載
BodyBuilder.write(body);
// フッタを記載
FooterBuilder.write();
}
}
DocumentBuilder.write(
'100',
'今さら聞けないファサードパターン',
[
'ファサードパターンとは・・・',
'例として挙げられるのは・・・',
'続いて実際のコードを見ていきましょう・・・'
]
);
호출자는 개별 처리를 의식하지 못하고 DocumentBuilder
이 창만 의식하면 되기 때문에 처리하기도 편리하다.총결산
이번
Typescript
에 디자인 모델 중 하나Facade Pattern
를 소개했다.문장의 첫머리에서 말한 바와 같이 이런 패턴은 부지불식간에 사용되었다.
왜 그랬을까? 코드에'일련의 고정 처리'가 여러 번 등장하면 지루한 기록을 피하기 위해 그것들을 싸는 함수(fathersed)를 자연스럽게 만들어야 하기 때문이다.
많은 디자인 모델에서도 직관적이고 알기 쉽다.
나는 "호출자에 제어를 기재하지 않았기 때문에 고장을 줄일 수 있다"며 "창구를 설치하면 외부와 희소하게 결합할 수 있다"고 장점으로 생각한다.
Reference
이 문제에 관하여([TS] 지금 들을 수 없는 패션 패턴.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/nekoniki/articles/d69efafa67faf67d202e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)