Open/Close Menu Yapı Taahhüt ve İnş. Tic. Ltd. Şti.

Size Özel Tekliflerimiz?
İletişime Geçin! »

Bizi Arayın:
0216 537 19 46/47

Deocrator 패턴의 대체 접근 방식은 무엇입니까. 우리가 데코레이터를 구현하지 않는 경우 내 말은. 데코레이터 패턴을 사용하면 구조를 변경하지 않고 기존 개체에 새 기능을 추가할 수 있습니다. 따라서 원래 클래스에는 변경이 없습니다. 자바 API의 사용과 함께 예제와 함께 정말 좋은 하나. 감사합니다 사티. 상속 또는 컴포지션을 사용하여 개체의 동작을 확장하지만 컴파일 타임에 수행되며 클래스의 모든 인스턴스에 적용됩니다. 런타임에 기존 동작을 제거하는 새로운 기능을 추가할 수 없습니다. hii 조 , 정말 좋은하지만난이 프로그램의 흐름을 이해하지 않습니다. 예 : 어떻게 크림장식클래스가 어떤 클래스를 만드는지 알 수 있습니다. 이 질문은 interviwer에 의해 요청하고 나는이 대답 감사를 제공하지 못하기 때문에이 정보를 제공하시기 바랍니다 ……………

설명 주셔서 감사합니다,하지만 당신의 예에서 매우 혼란스럽다.. ” 아이스크림 = 새로운 허니 데코레이터 (새로운 너티 데코레이터 (새로운 심플 아이스크림 ()); System.out.println (아이스크림.makeIcecream());” 예를 들어 창 시스템의 창을 고려합니다. 창 의 내용을 스크롤할 수 있도록 하려면 가로 또는 세로 스크롤 막대를 적절히 추가할 수 있습니다. 창이 Windows 인터페이스의 인스턴스로 표시된다고 가정하고 이 클래스에 스크롤 막대를 추가하는 기능이 없다고 가정합니다. 하나를 만들 수 있는 하위 클래스 ScrollingWindow 그들을 제공 하는, 또는 기존 창 개체에이 기능을 추가 하는 ScrollingWindowDecorat를 만들 수 있습니다. 이 시점에서, 어느 솔루션도 괜찮을 것입니다. 나는 같은 시나리오가 당신이 일반 도사, 마살라와 도사와 처트니도사를 얻을 수있는 도사에 대한 가정합니다. 그래서 마살라와 처트니 클래스는 도사 데코레이터를 확장합니다. 플레인도사 클래스와 DosaDecorator 클래스는 Dosa 인터페이스를 구현합니다. 이제 여분의 처트니 (처트니만 별도로 의미)를 원한다면 어떨까요? 데코레이터 패턴 (또는 위의 예과 같이 파이썬에서이 디자인 패턴의 구현)을 파이썬 언어 기능인 파이썬 데코레이터와 혼동하지 마십시오.

그들은 다른 것들입니다. 이러한 차이는 기능을 확장하는 몇 가지 독립적인 방법이 있을 때 가장 중요합니다. 일부 개체 지향 프로그래밍 언어에서는 런타임에 클래스를 만들 수 없으며 일반적으로 디자인 타임에 어떤 확장 조합이 필요한지 예측할 수 없습니다. 이것은 가능한 모든 조합에 대해 새로운 클래스를 만들어야 한다는 것을 의미합니다. 반면 데코레이터는 런타임에 생성된 객체이며 사용별로 결합할 수 있습니다. Java 및 .NET Framework의 I/O 스트림 구현에는 데코레이터 패턴이 통합됩니다. 데코레이터 패턴은 특정 객체의 기능을 정적으로 확장(장식)하는 데 사용할 수 있으며, 디자인 타임에 일부 기초 작업이 수행되는 경우 동일한 클래스의 다른 인스턴스와 는 별개로 런타임에 사용할 수 있습니다. 이는 원래 클래스를 감싸는 새로운 데코레이터 클래스를 디자인함으로써 달성됩니다. 이 래핑은 다음 단계 의 순서에 의해 달성 될 수있다 : 데코레이터 디자인 패턴은 우리가 런타임에 객체 (하지 클래스)에 기능을 추가 할 수 있습니다, 우리는 우리의 요구 사항에 따라 개별 개체에이 사용자 정의 기능을 적용 할 수 있습니다 선택.