[디자인패턴] Flyweight Pattern 경량패턴 1. 간단한 요약 내용이 같은 객체가 이미 있으면 새로 객체를 또 만들지 않고 그 내용 같은 기존 객체를 공유한다. 2. 사용은 언제 ? 게임에는 많은 반복작업이 들어간다. 대표적인 예는 게임에서 나무나 돌과 같은 지형 지물의 구현이다. 맵 하나에 지형 지물을 일일히 전부 다르게 구현하는 게임은 사실상 존재하지 않는다. 대부분 여러개의 돌이나 나무 오브젝트 같은 경우를 미리 만들어놓고 여러개를 공유해서 사용한다. 이런경우 이미지를 메모리에 나무마다 띄워둘 필요 없이 하나의 메모리에 이미지를 올려두고 여러개의 나무는 단지 하나의 이미지를 참조만 하는 형식으로 사용하면 좋다. 위의 예제에서는 나무의 고유한 값(나무마다 이미지는 변할 필요가 없다.) 나무..
C# 객체 지향 디자인 패턴 1 이 글은 얄팍한 코딩사전의 영상을 바탕으로 추가적인 자료를 수집해서 만든 글입니다. https://www.youtube.com/watch?v=lJES5TQTTWE&t=200s 1. Singleton (싱글턴) https://jjung9447.tistory.com/29 Design Patterns - 싱글톤(Singleton) 1.정의 싱글턴 패턴은 객체를 하나의 인스턴스로 제한하여, 메모리 사용을 줄이고 객체의 생성과 소멸을 제어할 수 있는 디자인 패턴 다른 어떤 클래스도 자신의 인스턴스를 추가로 만들지 못하 jjung9447.tistory.com 2. Strategy (전략패턴) 전략 패턴은 일반적으로 컨텍스트(Context) 객체, 전략(Strategy) 객체, 클라이..
개요 디자인 패턴을 본격적으로 공부하기 전에 객체지향에서 어떠한 프로그래밍을 지향해야 하는지에 대해서 부터 배우기로 했다. 애초에 디자인패턴이라는게 대체적으로 함수형 프로그래밍 언어에서는 해당되지 않는다. ... 객체 지향 설계 5대 원칙들의 앞자들만 줄여서 SOLID라고 부른다. 하나하나 천천히 살펴보자. 1. Single Responsibility Principle(단일 책임의 원칙) 제일 간단하다고 생각되는 원칙이다. 말 그대로 하나의 클래스는 하나의 책임만 져야한다. // 플레이어 조작을 처리하는 클래스 public class PlayerController { public void Move(PlayerInfo player, int x, int y) { // 플레이어 이동 처리 } public vo..
디자인 패턴이란.. 1.디자인 패턴의 정의 우선 디자인 패턴이 무엇인지 확실하게 정의할 필요가 있다. 디자인 패턴은 프로그램 개발에서 자주 나타나는 과제를 해결하기 위한 방법 중 하나로, 과거의 소프트웨어 개발 과정에서 발견된 설계의 노하우를 축적하여 이름을 붙여, 이후에 재이용하기 좋은 형태로 특정의 규약을 묶어서 정리 음 간단하게 축약하면 프로그래밍 노하우의 축약체 라고 할 수 있을 것 같다.. 2.왜 배우는거지,,? 이 부분이 굉장히 중요하다. 단순히 외우는 것이 아닌 디자인 패턴이 왜 생겨났고 왜 배우는지 알아야 알맞은, 효율적인 방향으로 공부할 수 있다. 많은 경우 코드의 유지 보수성, 가독성, 확장성 등을 향상 다른 개발자들과 더 잘 소통가능! 디자인 패턴이라는 것 자체가 이미 훌륭한 개발자 ..
싱글톤 1.정의 싱글턴 패턴은 객체를 하나의 인스턴스로 제한하여, 메모리 사용을 줄이고 객체의 생성과 소멸을 제어할 수 있는 디자인 패턴 다른 어떤 클래스도 자신의 인스턴스를 추가로 만들지 못하게 해야한다. 인스턴스에 접근할 수 있도록 전역 접근자를 제공해야한다. 2.장점 인스턴스를 하나만 생성하기 때문에 메모리를 효율적으로 사용할 수 있습니다. 다중 스레드 환경에서도 안정적으로 동작합니다. 객체의 생성과 소멸을 단일한 위치에서 관리하기 때문에 유지보수가 용이합니다. 3.예제 3.1.기본 싱글턴 public static HammerUI Instance { get; private set; } private void Awake() { Instance = this; } 장점은 구현하기 쉽다는 것이다. 간단한 ..