Udemy

Faceted Builder

Dmitri Nesteruk의 무료 동영상 튜토리얼
Software/Hardware Engineering • Quant Finance • Algotrading
평점: 4.4/5점강사 평점
22개의 강의
340,674명의 수강생
Faceted Builder

강의 설명

We look at a more complicated builder facade that exposes several sub-builders (builder facets) for building up parts of an object in a fluent manner.

전체 강의에서 자세히 알아보세요.

Design Patterns in C# and .NET

Discover the modern implementation of design patterns with C# and .NET

주문형 동영상의 20:40:51 • 업데이트 날짜: 8월 2025

Recognize and apply design patterns
Refactor existing designs to use design patterns
Reason about applicability and usability of design patterns
한국어 [자동]
지금까지 한 예제에선 특정 개체를 만들기 위해 빌더 하나를 이용했어요 어떻게 하면 이 제작자를 유창하게 만들까 고민했어요 하지만 건축업자 한 명으로는 부족할 때도 있습니다 그리고 몇 명의 건축가가 필요해요 한 물체의 여러 측면을 만드는 일을 하는 사람들이죠 그리고 일종의 정면이 필요해요 전면도 또 다른 디자인 패턴으로 나중에 살펴볼 텐데요 이번 시범에서 살펴볼 겁니다 왜 이게 필요한지 설명해 드리죠 약간의 가상 예제를 사용할 겁니다 하지만 이 예제는 충분히 이해하기 쉽습니다 두 개의 다른 정보 클래스를 가진 사람이 있다고 해보죠 네 주소 정보가 있어서 다시 한번 공공장소를 두어 개 만들 수도 있어요 스트링 스트리트 주소를 만들고 우편 번호를 입력하죠 이게 그 주소와 관련된 정보예요 주소를 유창하게 만들 건축업자를 고용하는 게 좋을 거예요 물론 고용 정보도 있을 겁니다 네 공용 문자열과 회사명, 직위를 정하고 추가할 필드도 정하죠 공용 int 연간 수입이라고 해보죠 네 이건 사람에 관한 정보죠 그래야 할 수도 있고요 음 먼저 이 정보를 출력해야죠 형식 구성원을 추가하고 전부 여기 쏟겠습니다 네 크고 멋진 문자열 두 개를 구현해서 사용자가 어떻게 초기화되는지 볼 수 있어요 좋아요 이제 사람을 만들어 줄 건축업자를 구하고 싶어요 하지만 여러 건축업자가 과정을 담당했으면 해요 주소를 만들 멋진 api가 필요합니다 고용 정보를 만들고 하나에서 다른 걸로 넘어가기 위해서요 그리고 이를 위해 빌더 측면을 만듭니다 아니, 사실 두 가지 측면을 만들 겁니다 주소와 취업을 위한 측면이죠 이걸 구현하는 방법을 알아보죠 좋아요 이제 시작할 건 일반 빌더와 다를 게 없는 작업이지만 사실 퍼슨 빌더는 완벽한 빌더가 아니에요 겉모습일 뿐이에요 디바가 있어야 하는데 괜찮아요 네 개인 건축가는 다른 건축가의 전면이에요 혼자 사람을 만들지는 않고 건축하는 사람을 참고할 수 있죠 한 가지는 확실해요 두 번째는 하위 빌더에 접근할 수 있게 해줍니다 이렇게 생겼군요 보호 대상자가 있어요 사람이 곧 사람이죠 이건 참고 자료라는 걸 강조해야겠네요 참조 개체예요 이건 아주 중요해요 구조물을 쌓는 중이라면 이 접근법에 문제가 많을 테니까요 완화할 수 있어요 하지만 그냥 알려드리는 거예요 그래서 만들어지는 개체에 대한 참조가 있죠 이 경우엔 사람이고 여기서 초기화되죠 네 그리고 추가로 다른 건축업자를 노출하는 거예요 어떤 건축업자요? 아직 안 정해졌으니 건축업자를 고용하죠 그래서 사람을 고용할 거예요 인력 작업 빌더는 인체 위에 작업 정보를 쌓도록 설계됐습니다 독립적인 공간일 뿐만 아니라 인간 빌더의 영향도 물려받았습니다 정말 이상하네요 왜 우리가 물려받아요? 곧 그 이유를 알게 될 겁니다 시간이 지나면 모든 게 명확해져요 하지만 지금은 이 물건에 집중하죠 그래서 우린 생성자 논쟁으로서 우리가 실제로 만드는 사람에 대한 참조를 취해야 합니다 여기서 참조를 하죠 네 사실 메뉴 생성으로 가서 생성자를 만들죠 하지만 한 사람을 데려와 이걸 할당하겠습니다 ? 이 사람은 곧 사람이에요 그러니까 이제 여기서 여러분이 구축한 개체를 빌더에 넘기고 Person builder에서 상속받은 영역에 저장합니다 지금까진 좋아요 이제 유창한 api를 만들 수 있어요 네 만약 그 사람이 어떤 특정한 곳에서 일한다고 한다면 공인이라고 하죠 일자리를 창출하는 곳이요 네 네 회사 이름은 회사 이름과 같다 그리고 이걸 반환합니다 왜냐하면 크고 유창한 인터페이스가 될 테니까요 그럼 저도 같은 걸 제안하죠 그러니까∙∙∙ 한 사람이 이 회사에서 일하다가 문자열로 바뀌는 거죠 여기에 문자열 위치를 넣겠습니다 다시 한 번 필드를 할당하고 이걸 반환합니다 사람.위치 값은 위치와 같다 그리고 이걸 반환합니다 드디어 연 수입이 생겼어요 공인 직업 구축자 내적 수익 이렇게 입력하고 연간 소득이 금액과 같다고 입력하면 다시 반환됩니다 왜 이런 일을 하죠? 요점이 뭐죠? 중요한 건 이제 이 api를 사용할 수 있다는 겁니다 이제 사람을 만들 수 있어요 var PB는 new person builder =이라고 쓸게요 물론 그런 다음 인물을 구축할 수도 있죠 var person= 이렇게 입력할게요 person builder 다음 줄로 가서 점을 찍을게요 아직까진 별다른 성과가 없어요 Person builder에 API가 없는 것 같아요 Api를 만들어보죠 이제 사람 작업 빌더와 사람 작업 빌더를 알아보죠 이건 정말 쉬워요 왜냐하면 그냥 새 인스턴스를 반환하면 되니까요 우리가 구축하고 있는 제공된 인수를 가지고요 이렇게 생겼군요 공인이고 직업 건설업자죠 네 웍스라는 공공 건물이고 새 직원을 고용할 거예요 사람마다 주장이 다르니까요 만들어지는 본래의 인물 말이에요 여기사람이라고 입력할게요 네 이제 워크라는 속성이 생겼고 그걸 사용할 수 있어요 이렇게 말할 수 있죠 person builder.웍스 . add 예를 들어 파브리캄이라는 회사 이름을 제공할 수 있습니다 다음 줄로 가서 멋지게 들여쓰기 합니다 엔지니어였다고 할 수 있어요 그리고 번 돈은 가령 123,000루블이라고 하죠 예를 들면요 세미콜론 Resharper Reformat을 넣으면 전부 바뀌죠 프레젠테이션을 망치는 거죠 일단 풀어 놓을게요 네 좋아요 이건 사람의 한 측면이에요 고용 정보도 한 측면이고 다른 측면은 주소거든요 그래서 다른 건축업자를 만들기로 했죠 과정을 이해하셨으면 좋겠네요 그래서 사람 주소 빌더를 붙여 넣겠습니다 자, 갑니다 사람 주소 빌더 네 또한 사람을 참조해야 합니다 다시 한 번 강조하지만 참조하는 것은 편리합니다 같은 걸 참고했어요 네 네 그럼 괜찮죠 하지만 값 유형은 문제가 될 수 있어요 우리 사건은 아니네요 네 사람 주소 빌더가 있으니 public사람 주소 빌더를 실행하라고 하고 new사람 주소 빌더를 반환해서 사람에게 전달합니다 그럼 이건 뭐죠? 여기서도 우리의 인터페이스가 유창하다는 걸 볼 수 있죠 Add라는 메서드가 있습니다 그 사람은 우체국 번호와 함께 이런저런 곳에 살아요 이 정보는 개인 빌더 어디에나 추가할 수 있습니다 네 그래서 예를 들어 여기로 가서 Lives. add 123 런던 로드 그런 다음 수동으로 들여쓰기해 postcode는 w1에서 a로 c 예를 들면 네 주소 만드는 것에서 고용 정보로 넘어갈 수 있는 이유는 주소 건설업자와 고용업자가 모두 물려받기 때문이에요 주의: 그들은 pmwer로부터 물려받았습니다 그 두 가지는 다른 빌더들을 노출시키는 거죠 그리고 그 결과로 사람의 삶 같은 걸 쓸 수 있어요 살아 있어요 영원히 살겠죠 괜찮아요 하지만 그건 편리하게 사용하려고 노력해서 생기는 부작용일 뿐이에요 네 그래서 두 명의 하위 제작자를 고용해서 사람을 유창하게 만들 인터페이스를 제공했어요 하지만 흥미롭게도 우리가 라인을 제대로 작성하면 마지막에는 사람을 볼 수 없어요 사람은 사람이니까요 일자리 창출자죠 , 맞아요 마지막 주문이에요 네 문제는 이겁니다 다른 api를 소개하지 않고 어떻게 사람을 구하죠? 이 경우에는 그게 금상첨화일 겁니다 개인 빌더로 가면 제가 자주 하는 건 프로그래밍 접근법에 그리 맞지는 않지만 이걸 해요 퍼블릭 정적 연산 내포럴 연산자: 사람이 개인 빌더를 가져요 Pb.사람을 반환하면 됩니다 네 당연히 p죠 됐어요 네 암시적 변환 연산자를 사람 간으로 소개하고 다음을 쓸 수 있게 해줍니다 그래서 var는 계속 쓸 수 없지만 사람, 사람을 쓸 순 있죠 그럼 돼요 이걸 컴파일하고 실행해보죠 보시다시피 사람이 점점 커지고 있어요 네 주소를 올바르게 초기화했고 고용 정보도 올바르게 초기화했어요 이건 좀 더 복잡한 예제죠 이 코드를 다운로드해서 직접 확인해보시길 권해드립니다 여기서 무슨 일이 벌어지는지 알아보시라고요 우리가 하는 방식에 약간의 속임수가 있거든요 건물 외관을 만든 거예요 전면은 많은 정보를 숨기는 단순한 구성 요소입니다 네 서브 빌더들의 클래스는 대중화했지만 보시다시피 인간 빌더의 내부 클래스로 만들 수 있어요 고객에게 내부를 숨길 수 있어요 그럴 수도 있죠 이게 빌더 방식이에요