반응형 전체 글108 [Java 객체 지향 디자인 패턴] 9. 옵서버 패턴 - 통보의 캡슐화 옵서버 패턴 데이터의 변경이 발생했을 경우 상대 클래스나 객체에 의존하지 않으면서 데이터 변경을 통보하고자 할 때 유용하다. 예를 들어 새로운 파일이 추가되거나 기존의 파일이 삭제되었을 때 탐색기는 이를 즉시 표시할 피룡가 있다. 탐색기를 복수 개 실행하는 상황이나 하나의 탐색기에서 파일 시스템을 변경했을 때는 다른 탐색기에게 즉각적으로 이 변경을 통보해야 한다. 옵서버 패턴은 통보 대상 객체의 관리를 Subject 클래스와 Observer 인터페이스로 일반화 한다. 이를 통해 데이터 변경을 통보하는 클래스(ConcreteSubject)는 통보 대상 클래스나 객체(ConcreteObserver)에 대한 의존성을 없앨 수 있다. 결과적으로 옵서버 패턴은 통보 대상 클래스나 대상 객체의 변경에도 Concre.. Java/Java 객체지향 디자인 패턴 2022. 5. 9. [Java 객체 지향 디자인 패턴] 8. 커맨드 패턴 - Command Pattern : 기능의 캡슐화 커맨드 패턴 커맨드 패턴은 이벤트가 발생했을 때 실행될 기능이 다양하면서도 변경이 필요한 경우에 이벤트를 발생시키는 클래스를 변경하지 않고 재사용하고자 할 때 유용하다. 커맨드 패턴은 실행될 기능을 캡슐화함으로써 기능의 실행을 요구하는 호출자(Invoker) 클래스와 실제 기능을 실행하는 수신자(Receiver)클래스 사이의 의존성을 제거한다. 따라서 실행될 기능의 변경에도 호출자 클래스를 수정 없이 그대로 사용할 수 있게 해준다. - Command : 실행될 기능에 대한 인터페이스. 실행될 기능을 execute메서드로 선언함. - ConcreteCommand : 실제로 실행되는 기능 구현. 즉, Command라는 인터페이스 구현함. - Receiver를 Attribute으로 가지고 있음. - Invok.. Java/Java 객체지향 디자인 패턴 2022. 3. 17. [안드로이드 스튜디오]코틀린. Inlay Hints. Editor Hint, 힌트, Type힌트 코틀린을 이제 막 공부하는 입장에서, 변수타입이 생략되는 것이 편하기도 합니다. 하지만, 어떤 타입인지 명확히 알고 싶을 때 Hint옵션을 On 해준다면 좀 더 정확하게 이해하면서 배울 수 있을 것 같네요~ 다른 언어에 대해서도 가능한 것 같습니다.^^ hint 적용 전. hint 적용 후. 도움이 되셨길... 카테고리 없음 2022. 3. 15. [Java 객체 지향 디자인 패턴] 7. 스테이트 패턴 - State Pattern : 상태의 캡슐화 상태란 객체가 시스템에 존재하는 동안, 즉 객체의 라이프 타임 동안 객체가 가질 수 있는 어떤 조건이나 상황을 표현한다. 스테이트 패턴 스테이트 패턴은 상태에 따라 동일한 작업이 다른 방식으로 실행될 때 해당 상태가 작업을 수행하도록 위임하는 디자인 패턴이다. 스테이트 패턴의 목표는 현재 시스템이 어떤 상태에 있는지와 상관없이 구성하고, 상태변화에도 독립적이도록 코드를 구현하는 것이다. 이를 위해서 상태를 클래스로 분리해 캡슐화 한다. Light(형광등)은 State를 attribute로 가지고 있으며, 외부에서 의존성을 주입 받기 위해 setState Method까지 가지고 있다. State Interface를 구현한 형광등의 상태인 ON, OFF가 있으며, 각 상태에서 on, off를 실행하는 코드를.. Java/Java 객체지향 디자인 패턴 2022. 3. 14. [Java 객체 지향 디자인 패턴] 6. 싱글턴 패턴 - Singleton Pattern : 단하나! 비동기 시 주의 안녕하세요~ 이 패턴은 회사에서도 자주 접해서 꽤나 친숙한 패턴입니다. 좀 빨리 넘어갈 수 있지 않을까 생각해봅니다. ㅎ.ㅎ 6. 싱글턴 패턴 - Singleton Pattern 싱글턴 패턴은 인스턴스가 오직 하나만 생성되는 것을 보장하고, 어디서든 이 인스턴스에 접근할 수 있도록 하는 디자인 패턴입니다. - Singleton : 하나의 인스턴스만을 생성하는 책임이 있고, getInstance메서드를 통해 모든 클라이언트에게 동일한 인스턴스를 반환하는 작업을 수행한다. public class Singleton{ private static Singleton instance=null; public static Singleton getInstance(){ if(instance==null) instance=ne.. Java/Java 객체지향 디자인 패턴 2022. 2. 23. [Java 객체 지향 디자인 패턴] 5. 스트래티지 패턴 - Strategy Pattern~! 전략 패턴~! 안녕하세요~! 펄입니다. 드디어! 구체적인 디자인 패턴에 대해서 공부하게 됐어요... 서론이 생각보다 길고 생각보다 중요한 것 같기도... 책에서는 로봇을 예제로 설명을 해준다. 예제는 생략하고 연습문제를 풀면서 뒤쪽에서 설명해보도록 하겠습니다. 5.4 스트래티지 패턴 - Strategy Pattern 전략을 쉽게 바꿀 수 있도록 해주는 디자인 패턴이다. 전략은 일을 수행하는 방식, 비즈니스 규칙, 문제 해결 알고리즘 등으로 이해할 수 있다. 스트래티지 패턴에서는 같은 문제를 해결하는 여러 알고리즘이 클래스별로 캡슐화되어 있고 이들이 필요할 때 교체할 수 있도록 함으로써 동일한 문제를 다른 알고리즘으로 해결할 수 있게 하는 디자인 패턴이다. Strategy 패턴에서 나타나는 역할이 수행하는 작업 - St.. Java/Java 객체지향 디자인 패턴 2022. 2. 23. [Java 객체 지향 디자인 패턴] 4. 디자인 패턴 - 바퀴를 다시 발명하지 말라~! 안녕하세요. 펄입니다. 이번에는 디자인 패턴의 개념에 대해서 공부해볼 예정입니다. 4.1 디자인 패턴의 이해 디자인 패턴 구조는 콘텍스트, 문제, 해결 이라는 3개의 필수 요소로 구성된다. - 콘텍스트 : 문제가 발생하는 여러 상황을 기술한다. 패턴이 적용될 수 있는 상황을 나타낸다. 경우에 따라서는 패턴이 유용하지 못한 상황을 나타내기도 한다. - 문제 : 패턴이 적용되어 해결될 필요가 있는 여러 디자인 이슈들을 기술한다. 이 때, 여러 제약 사항과 영향력도 문제 해결을 위해 고려해야 한다. - 해결 : 문제를 해결하도록 설계를 구성하는 요소들과 그 요소들 사이의 관계, 책임, 협력 관계를 기술한다. 해결은 반드시 구체적인 구현 방법이나 언어에 의존적이지 않으며 다양한 상황에 적용할 수 있는 일종의 템.. Java/Java 객체지향 디자인 패턴 2022. 2. 16. [Java 객체 지향 디자인 패턴] 3. SOLID 원칙(SRP, OCP, LSP, DIP, ISP) 3.1 SRP - Single Responsibility Principle : 단일 책임 원칙 객체는 단 하나의 책임만 가져야 한다. 책임이란( = 해야하는것, = 할 수 있는 것, = 해야 하는 것을 잘 할 수 있는 것) 핵심적인 책임만 수행하도록 하는 것이 SRP를 따르는 설계이다. 책임의 변경 : 코드는 변경되기 마련이다. 한 클래스의 역할이 많아지게 되면 서로 얽히고 설켜서 일부를 수정하기 위해서 전부를 뜯어고쳐야하는 경우가 발생할 수 있다. 이를 대비하여 책임을 분리시켜주어야 한다. ※ 회귀(regression) 테스트 : 어떤 변화가 있을 때 해당 변화가 시스템의 기능에 영향을 주는지 평가하는 테스트. 산탄총 수술 - AOP 하나의 책임이 여러 클래스에 분산된 경우. 대표적인 예로 로깅, 보안.. Java/Java 객체지향 디자인 패턴 2022. 2. 8. [Java 객체 지향 디자인 패턴] 2. 객체지향 원리 2.1 추상화 추상화란 어떤 영역에서 필요로 하는 속성이나 행동을 추출하는 작업을 의미한다. 각 개체의 구체적인 개념에 의존하지 말고 추상적 개념에 의존해야 설계를 유연하게 변경할 수 있다. 2.2 캡슐화. 요구사항 변경에 대처하는 고전적인 설계 원리 1. 응집도(cohesion) : 클래스나 모듈 안의 요소가 얼마나 밀접하게 관련되어 있는 지를 나타냄 2. 결합도(coupling) : 어떤 기능을 실행하는데 다른 클래스나 모듈에 얼마나 의존적인지를 나타냄. 높은 응집도와 낮은 결합도를 유지할 수 있도록 설계해야 요구사항 변경에 유연하게 대처할 수 있다. 캡슐화는 낮은 결합도를 유지할 수 있도록 해주는 객체지향 설계 원리이다. 정보 은닉 외부에서 내부 변수에 접근할 경우 예기치 못한 문제가 발생할 수도 .. Java/Java 객체지향 디자인 패턴 2022. 1. 25. [Java 객체 지향 디자인 패턴] 1. 객체지향 모델링 안녕하세요. 펄입니다. Java 객체 지향 디자인 패턴에 대한 공부자료를 업데이트하고 있습니다. 잘못된 부분이 있으면 가감없이 피드백 부탁드리겠습니다. 본 글은 해당 자료를 기반으로 작성되었습니다. JAVA 객체지향 디자인 패턴 - 교보문고 UML과 GoF 디자인 패턴 핵심 10가지로 배우는 | 이 책이 제시하는 핵심 내용객체지향 이론과 UML을 통해 GoF 디자인 패턴의 핵심 10가지를 배운다.이 책의 특징과 장점5단계 학습법으로 디자인 패턴을 www.kyobobook.co.kr 1. 객체지향 모델링 모델의 역할 - 서로의 해석을 공유해 합의를 이루거나 해석의 타당성을 검토한다. - 현재 시스템 또는 앞으로 개발할 시스템의 원하는 모습을 가시화 한다. - 시스템의 구조와 행위를 명세할 수 있으며 시스템.. Java/Java 객체지향 디자인 패턴 2022. 1. 25. [JAVAFX] SceneBuilder - 자바 UI 제작 툴 설치 및 사용법 안녕하세요~! 펄입니다. 이번에는 자바 UI 제작 툴인 SceneBuilder를 설치하고 간단한 사용방법에 대해서 알아보도록 하겠습니다. 개인적으로 미적 감각이 없는지라, FrontEnd는 어렵게만 느껴집니다. 그래도, 간단한 기능을 테스트할 수 있는 어플리케이션 정도는 만들 줄 알아야 한다고 생각합니다. ㅎ.ㅎ 자바 프로그램 제작이 필요할 때, JavaFX 프로젝트로 개발하고 있습니다. 그리고, Java FX 프로젝트 개발에서 UI 부분은 SceneBuilder라는 툴을 사용하여 개발하고 있습니다. 2021년 1월 기준 Scenbuilder 8 버전을 사용하시길 권장드립니다. 유용한 Library인 JFoenix와 Fontawesomefx가 17버전과는 호환이 안되더라구요..ㅎㅎ SceneBuilder.. Java 2022. 1. 18. [개발창고] 코드 줄 세기! CLOC - Count Lines Of Code/ 코드 라인 수 안녕하세요 펄입니다~! 첫 포스팅으로 코드 줄 세는 프로그램에 대해서 알려드리도록 하겠습니다. cloc라고 구글에 검색하면 쉽게 찾을 수 있는데요~! 해당 프로그램을 먼저 다운로드 하겠습니다. https://sourceforge.net/projects/cloc/files/cloc/ cloc - Browse /cloc at SourceForge.net × sourceforge.net 위 링크에서 cloc-1.64.exe를 다운받도록 합니다. 다운로드를 완료하면 아래와 같은 프로그램을 확인할 수 있습니다! 이제 직접 써봐야겠죠?? (단순 더블클릭으로 동작하는 것이 아닙니다.) cmd(command창) = 명령프롬프트, 파워쉘 등을 열어줍니다. 분석을 원하는 폴더 또는 파일을 아래와 같이 넣어주면 됩니다. 결.. 개발창고 2022. 1. 14. 이전 1 ··· 6 7 8 9 다음 반응형