전체 글(222)
-
디자인패턴_Strategy Pattern of Behavioral Pattern
Strategy Pattern이란, 행위를 클래스로 캡슐화해 동적으로 행위를 자유롭게 바꿀수 있게 해주는 패턴 즉, 같은 문제를 해결하는 여러 알고리즘이 클래스별로 캡슐화되어 있고 이들이 필요할 때 교체할 수 있도록 함으로써 동일한 문제를 다른 알고리즘으로 해결할 수 있게 하는 디자인 패턴 EX) 게임 캐릭터가 자신이 처한 상황에 따라 행동하는 방식을 바꾸고 싶을 때 스트래티지 패턴이 유용하다. Strategy 인터페이스나 추상 클래스로 외부에서 동일한 방식으로 알고리즘을 호출하는 방법을 명시 ConcreteStrategy 스트래티지 패턴에서 명시한 알고리즘을 실제로 구현한 클래스 Context 스트래티지 패턴을 이용하는 역할을 수행 (필요에 따라 동적으로 구체적인 전략을 바꿀 수 있도록 setter메서..
2021.01.06 -
디자인패턴_Singleton Pattern of Creational Pattern
애플리케이션이 시작될 때 어떨 클래스가 최초로 한번만 메모리를 할당(Static)하고 그 메모리에 인스턴스를 만들어 사용하는 디자인 패턴으로, 생성자가 여러차례 호출되더라도 실제 생성되는 객체는 하나이며 최초 생성 이후에 호출된 생성자는 최초 생성된 객체를 반환 --------------------------------------------------------------------------------------------------------------------------- 자바에서는 생성자를 Private으로 선언해 더 이상 생성되는 것을 불가하게 하고, getInstance()로 받아쓰게한다. ---------------------------------------------------------..
2021.01.05 -
Final
final은 해당 Entity가 오로지 한번 할당 될 수 있음을 의미 final 변수 해당 변수가 생성자나 대입연산자를 통해 "한번만 초기화 가능"함을 의미 (상수를 만들 때 응용) final 메소드 해당 메소드를 Override(상속)하거나 숨길 수 없음을 의미 final 클래스 해당 클래스는 더 이상 상속할 수 없음을 의미 (상속 계층 구조에서 마지막 클래스) final 멤버 변수가 반드시 상수는 아니다. final의 정의는 "상수"가 아닌 "한번만 초기화"이기 때문이다. private 메소드와 final 클래스의 모든 메소드는 명시하지 않아도 final처럼 동작 Override가 불가능하기 때문이다. -> Pricate: 자식 클래스에서 안보이며 오버라이드도 안된다. -> final: 자식 클래스에..
2021.01.05 -
Static
Static 어떤 값이 메모리에 한번 할당되어 프로그램이 끝날 때까지 그 메모리에 값이 유지됨을 의미하므로, 특정 값을 공유해야하는 경우에는 static사용시 메모리의 이점을 얻을 수 있다. Static 변수 인스턴스 변수는 클래스가 생성될때 메모리 공간이 할당되고, 생성자에 있는 값으로 초기화된다. 하지만 static 변수(클래스 변수)는 선언되는 순간에 하나의 메모리 공간이 할당되기 때문에 어디에 선언이 되더라도 그 클래스 내에서는 공유 된다. 인스턴스 변수를 사용하면 instance1, instance2 객체 생성시, instance1의 variable과 instance2의 variable이 서로 다른 메모리를 각각 할당받게 된다. 그러나 static 변수를 사용하게 되면, 두 객체를 생성하여도 v..
2021.01.05 -
Design Pattern
1. 디자인 패턴 디자인 패턴은 소프트웨어를 설계할 때 특정 맥락에서 자주 발생하는 고질적인 문제들이 또 다시 발생했을때 재사용이 가능하도록하는 훌륭한 해결책이 된다. Pattern 각기 다른 소프트웨어 모듈이나 기능을 가진 다양한 응용 소프트웨어 시스템들을 개발할 때 서로간에 공통되는 설계문제가 존재하며, 이를 처리하는 해결책 사이에도 공통점이 존재하게 되는데, 이러한 유사점을 패턴이라 한다. -> 패턴은 공통의 언어를 만들어 주며, 팀원 사이의 의사소통을 원활하게 해두는 아주 중요한 역할을 한다. 2. 디자인 패턴의 구조 Context(콘텍스트) 패턴이 적용될 수 있는 상황을 나타낸다. 경우에 따라 패턴이 유용하지 못한 상황을 나타내기도 한다. Problem(문제) 패턴을 적용해 해결할 필요가 있는 ..
2021.01.05 -
디자인패턴_MVC Pattern
MVC 패턴을 사용하는 이유? 사용자가 보는 페이지, 데이터의 처리 그리고 이 두가지를 중간에서 제어하는 컨트롤 이 3가지로 구성된 하나의 애플리케이션을 만들기 위해서는 서로 분리되어 각자의 역할에 집중할 수 있게끔 개발을 하고, 애플리케이션을 만들어야 유지보수성, 애플리케이션의 확장성, 유연성이 증가하고, 중복코딩의 문제점 또한 사라지게 된다. (비즈니스 처리 로직과 사용자 인터페이스 요소들을 분리시켜 서로의 영향을 받지않고 개발하기 쉽다.) MVC란 Model, View, Controller 의 약자로 하나의 프로젝트를 구성할 때, 그 구성요소를 세가지의 역할로 구분한 패턴 사용자가 Controller를 조작하면 Model을 통해 데이터를 가져오고, 그 정보를 바탕으로 시각적 표현을 담당하는 View..
2020.12.31