본문 바로가기

프로그래밍 언어/Architecture

객체 지향 & 패턴 in C (2) [Contents] 스테이트 패턴 객체지향 스테이트 패턴 [출처] '모던 C언어 프로그래밍' - 하나이 시세이 스테이트 패턴 - 상태 변화표를 이용하면, 다이어그램으로 표현하지 못한 빠진 부분 까지 모든 패턴을 확인할 수 있다. - 상태는 열거형(enum)을 이용해 나타내는 방법이 일반적이다. - onEvent 함수에서는 전역변수인 state에 따라 event가 다르게 발휘(?) 되도록 한다. typedef enum { EV_STOP, EV_PLAY_PAUSE } EventCode; typedef enum { ST_IDLE, ST_PLAY, ST_PAUSE } State; void initialize() { state = ST_IDLE; } void onEvent(EventCode ec) { switch.. 더보기
객체 지향 & 패턴 in C (1) [Contents] C언어와 객체지향1 C언어와 객체지향2 - 기능 추가 C언어와 객체지향3 - 확장성을 고려한 기능 추가 C언어와 객체지향4 - 상속된 기능들(기능의 상속화) [출처] '모던 C언어 프로그래밍' - 하나이 시세이 C언어와 객체지향1 - 자료구조는 구조체로 표현하여 '객체'처럼 생성하면 편리하다. - 매크로를 사용하여 쉽게 구조체 초기화를 한다. Stack.h #include typedef struct{ int top; const size_t size; int *const pBuf; } Stack; bool push(Stack *p, int val); bool pop(Stack *p, int *pRet); #define newStack(buf) {0, sizeof(buf) / sizeof.. 더보기
SOLID (객체 지향 설계) 설명 객체지향 프로그래밍 및 설계 다섯가지 기본 원칙 by 로버트 마틴 - SOLID 원칙들은 소프트웨어 작업에서 프로그래머가 소스 코드가 읽기 쉽고 확장하기 쉽게 될 때까지 소프트웨어 소스 코드를 리팩터링하여 코드 냄새를 제거하기 위해 적용할 수 있는 지침이다. SOLID 약어 개념 A. SRP(단일 책임의 원칙) - 개념: 작성된 클래스는 하나의 기능만을 가지며, 클래스가 제공하는 모든 서비스는 하나의 책임(변화의 축: axis of change)을 수행하는데 집중되어야 한다. 어떤 변화에 의해 클래스를 변경해야 하는 이유는 오직 하나뿐. 책임 변경에서 다른 책임 변경의 연쇄 작용에서 자유로울 수 있다. - 효과 : 코드 가독성 향상, 유지보수 용이 - 연습 방법 : 도메인에 따라 적용 방법이 다르므로, .. 더보기