Call Dave
(702) 379-3401
  • flyweight 패턴 예제

    플라이급 패턴을 적용하려면 공유 개체를 반환하는 플라이급 팩터리를 만들어야 합니다. 예를 들어 선과 타원형으로 도면을 작성해야 한다고 가정해 보겠습니다. 그래서 우리는 인터페이스 모양과 라인과 타원형으로 구체적인 구현을해야합니다. 타원형 클래스는 지정된 색상으로 타원형을 채울지 여부를 결정하는 본질속성을 가지지만 Line에는 내재 속성이 없습니다. 행동 디자인 패턴은 개체로 둘러싸인 일반적인 통신 패턴을 대략 식별하고 이러한 패턴을 이해합니다. 즉, 행동 패턴은 엔터티 간의 통신과 이러한 엔터티가 통신할 수 있는 유연성이 더 쉽고 뛰어난 방식으로 표시되는 방식에 사용됩니다. 이 기사에서는 플라이급 디자인 패턴을 살펴보겠습니다. 이 패턴은 메모리 공간을 줄이는 데 사용됩니다. 또한 개체 인스턴스화비용이 많은 응용 프로그램에서 성능을 향상시킬 수도 있습니다. 이를 통해 클라이언트는 (1) 플라이급 객체를 재사용(공유)(매번 새 개체를 만드는 대신)하고 (2) 플라이급 작업을 호출할 때 외적 상태로 통과할 수 있습니다.

    이렇게 하면 물리적으로 생성된 개체수가 크게 줄어듭니다. 본질적인 상태는 불변(컨텍스트 독립적)이므로 공유할 수 있습니다(예: 지정된 문자 집합의 문자 `A`의 코드). 외적 상태는 변형(컨텍스트 에 따라 다름)이므로 공유할 수 없으므로 전달되어야 합니다(예: 텍스트 문서에서 문자 `A`의 위치). 아래UML 클래스 및 시퀀스 다이어그램을 참조하십시오. 본질및외신적 상태를 이해하기 위해 예를 들어 봅시다. 플라이급 패턴에 대한 모든, 우리는 미래의 게시물에 더 많은 디자인 패턴을 살펴 볼 것이다. 당신이 그것을 좋아하는 경우에, 코멘트 섹션에서 당신의 생각을 공유하고 너무 다른 사람과 공유하시기 바랍니다. 파이썬 클래스는 기본적으로 변경할 수 있지만 플라이웨이트 특성에 대한 변경 내용을 허용하지 않도록 클래스의 __setattr__ 메서드를 재정의하여 불변성을 에뮬레이트할 수 있습니다. 위의 코드에서 우리는 FlyweightDesignPattern 클래스를 만들었습니다 우리가 색상의 배열을 정의하고 main() 메서드로 구성되어 있습니다. 우리의 주요 클래스인 플라이웨이트디자인패턴은 버드팩토리를 사용하여 버드 오브젝트를 얻습니다.

    그것은 필요한 색상의 화가 조류를 얻기 위해 BirdFactory에 정보 (빨간색 / 오렌지 / 블루 / 블루 / 노란색 / 분홍색)를 전달합니다. 이 패턴을 구현하는 유일한 방법은 맵(이 예제에서 HashMap) 데이터 구조를 사용하고 있습니까? 책임 의 사슬 패턴, 명령 패턴, 인터레이터 패턴, 반복자 패턴, 중재자 패턴, 기념품 패턴, Null 개체 패턴, 관찰자 패턴, 상태 패턴, 전략 패턴, 템플릿 패턴, 방문자 패턴입니다. 싱글톤 패턴은 시스템에서 하나의 개체만 유지하는 데 도움이 됩니다. 즉, 필요한 개체가 만들어지면 더 이상 만들 수 없습니다. 응용 프로그램의 모든 부분에서 기존 개체를 다시 사용해야 합니다. 지금, 이 부분에서 우리는 실제 예를 사용하여 플라이급 디자인 패턴에 대해 설명합니다 – 화가 조류 게임. 화가 조류는 지금 일 가장 재미 있고 추세 게임 중 하나이며, 사람들의 대부분은 매일이 게임을 사랑. 우리가이 게임의 도움으로 플라이급 패턴을 구현할 수있는 방법을 보자.

    화가 조류 게임에서 가정, 우리가 할 것입니다 20000 붉은 색 화가 조류를 만들려면 우리가 20000 화가 조류 객체를 만들고 붉은 색으로 채울 것입니다. 따라서 20000 오브젝트를 만들면 더 많은 메모리를 차지하고 게임의 성능에 영향을 미치기 때문에 이러한 복잡성을 피하기 위해 플라이웨이트 디자인 패턴에 따라 색상없이 하나의 오브젝트만 만들고 해시 맵으로 밀어 넣을 수 있는 한 가지 작업을 수행할 수 있습니다. 패턴을 적용하는 이점은 패턴을 사용하는 방법과 위치에 따라 크게 달라집니다. 그것은 가장 유용 할 때 : 지금까지 우리는 플라이 급 디자인 패턴이 무엇인지, 자바 코드를 사용하여 전체 구현뿐만 아니라 플라이 웨이트 디자인 패턴 다이어그램뿐만 아니라 실제 생활의 예를 잘 탐구했다.

    Comments are closed.

Copyright © 2019 Dave Radcliffe Vegas     Log in     Design by Real Estate Tomato     Powered by Tomato Real Estate Blogs

All Content Owned and Copyright Their Respective Owner Unless Otherwise Stated