Jini's Blog

Ing...

  • Home
  • Business
    • Internet
    • Market
    • Stock
  • Parent Category
    • Child Category 1
      • Sub Child Category 1
      • Sub Child Category 2
      • Sub Child Category 3
    • Child Category 2
    • Child Category 3
    • Child Category 4
  • Featured
  • Health
    • Childcare
    • Doctors
  • Home
  • Business
    • Internet
    • Market
    • Stock
  • Downloads
    • Dvd
    • Games
    • Software
      • Office
  • Parent Category
    • Child Category 1
      • Sub Child Category 1
      • Sub Child Category 2
      • Sub Child Category 3
    • Child Category 2
    • Child Category 3
    • Child Category 4
  • Featured
  • Health
    • Childcare
    • Doctors
  • Uncategorized

순수한 가공물에게 책임 할당하기

 Jini     오후 10:21     객체지향     No comments   

 부제 : 객체지향이 실세계의 모방이라는 말에 대하여

객체를 얘기할 때 실세계에 존재하는 무엇과 연관지으라는 얘기들을 많이 한다. 하지만 막상 클래스를 설계하고 객체를 생성하다보면 실세계와 맞지 않는 경우가 많이 생긴다. 이게 문제 되는 것은 항상 나를 의심하게 만들고 완성 이후에도 무언가 찝찝함이 남는다는 점이다. 

이런 나의 찝찝함을 덜어주는 내용이 있어 공유해본다.

크레이그 라만은 시스템을 객체로 분해하는 데는 크게 두 가지 방식이 존재한다고 설명한다. 하나는 표현적 분해이고 다른 하나는 행위적 분해다.

표현적 분해는 도메인 모델에 담겨 있는 개념과 관계를 따른다. 그러나 종종 도메인 개념을 표현하는 객체에게 책임을 할당하는 것만으로는 부족한 경우가 발생한다.

모든 책임을 도메인 객체에게 할당하면 낮은 응집도, 높은 결합도, 재사용성 저하와 같은 심각한 문제점에 봉착하게 될 가능성이 높아진다. 이 경우 도메인 개념을 표현한 객체가 아닌 설계자가 편의를 위해 임의로 만들어낸 가공의 객체에게 책임을 할당해서 문제를 해결해야 한다. 크레이그 라만은 이처럼 책임을 할당하기 위해 창조되는 도메인과 무관한 인공적인 객체를 PURE FABRICATION(순수한 가공물)  이라고 부른다.

(중략)

먼저 도메인이의 본질적인 개념을 표현하는 추상화를 이용해 애플리케이션을 구축하기 시작하라. 만약 도메인 개념이 만족스럽지 못하다면 주저하지 말고 인공적인 객체를 창조하라. 객체지향이 실세계를 모방해야 한다는 헛된 주장에 현혹될 필요가 없다. 우리가 애플리케이션을 구축하는 것은 사용자들이 원하는 기능을 제공하기 위해서지 실세계를 모방하거나 시뮬레이션하기 위한 것이 아니다.

출처 : 오브젝트 / 코드로 이해하는 객체지향 설계 / 조영호 지음

현실/도메인 개념과 맞지 않는 객체가 나오는 것은 자연스러운 현상이라는 것을 기억하자.


Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg

키크론 K8 Pro VIA 프로그램 인식

 Jini     오후 5:21     키보드, 키크론, K8 PRO RGB, troubleshooting     No comments   

•케이블 모드 설정으로 바꾸고 USB 케이블 연결 후 VIA 프로그램 실행
•DESIGN 탭에서 Use V2 definitions(deprecated)를 on시키고 JSON 파일을 LOAD
Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg
최근 게시물 이전 게시물 홈

Popular Posts

  • 한글이 3byte인 경우 캐릭터셋 확인
    오라클의 문자집합이 KO16KSC5601, KO16MSWIN949 인 경우는 2 Byte로 한글을 인식. UTF8/AL32UTF8의 경우 3Byte로 한글을 인식. 단 UTF8/AL32UTF8의 경우는 한글 정렬이 가능하다는 장점이 있다. 캐릭...
  • 문법에서 문장까지(대명사)
    1. 대명사 ■ 인칭대명사 1) 대명사는 숙어 동사(phrasal verb) 사이에 쓴다. * I cut up half of one large banana and put it in cereal. 2) 소유격 대명사와 관사는 같이 쓸 수 ...
  • Redmine Text Format
    1. 글자색상 변경 %{color:red}dev% 2. 음영색상 변경 %{background:lightgreen} lightgreen% 3. 문단 넘버링(띄어쓰기 주의) # 큰 제목 ## 큰제목의 하위 제목 # 두번째 큰 제목 # ...
  • 오라클 한글깨짐 현상해결
    1. 레지스트리 편집기 실행 : 시작 -> 실행 -> regedit 2. HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE 하위 경로 폴더중 이름이 "NLS_LANG"인 속성의 데이터 확인 3. "...
  • Visual Studio 2013 팁 및 단축키(이클립스랑 비교)
    이클립스에는 있는데 VS에는 없어서 있었으면 하는 기능 중 실제로 있었는데 내가 몰랐던 것들 1. 한 줄 삭제 이클립스는 ctrl + d / VS는 ctrl + shift + l 2. 한 줄 그대로 복사하여 아래로 붙여넣기(위로 붙여넣기는 모...

Recent Posts

Recent Posts Widget

Blog Archive

  • ▼  2023 (4)
    • ►  3월 (1)
    • ►  2월 (1)
    • ▼  1월 (2)
      • 순수한 가공물에게 책임 할당하기
      • 키크론 K8 Pro VIA 프로그램 인식
  • ►  2022 (1)
    • ►  2월 (1)
  • ►  2020 (8)
    • ►  7월 (1)
    • ►  4월 (3)
    • ►  3월 (4)
  • ►  2018 (1)
    • ►  7월 (1)
  • ►  2015 (1)
    • ►  5월 (1)
  • ►  2014 (5)
    • ►  8월 (1)
    • ►  7월 (1)
    • ►  6월 (1)
    • ►  5월 (1)
    • ►  1월 (1)
  • ►  2013 (10)
    • ►  12월 (1)
    • ►  11월 (1)
    • ►  9월 (2)
    • ►  8월 (3)
    • ►  7월 (3)
  • ►  2012 (1)
    • ►  3월 (1)

Categories

  • 객체지향 (1)
  • 도서요약 (1)
  • 문법에서 문장까지 (2)
  • 일상 (1)
  • 자기계발 (1)
  • 책 (1)
  • 키보드 (1)
  • 키크론 (1)
  • blogspot (2)
  • error (1)
  • exception (1)
  • GIT (1)
  • JAVA (6)
  • JUNIT (1)
  • K8 PRO RGB (1)
  • kafka (1)
  • markdown (1)
  • mongodb (2)
  • mongotemplate (1)
  • optional (1)
  • Oracle (4)
  • Redmine (1)
  • spring (1)
  • stackedit (1)
  • troubleshooting (1)
  • Visual Studio (1)
  • Webflux (1)

Unordered List

Pages

  • 홈

Text Widget

Categories

Tags

Facebook

  • Home
  • Features
  • _Multi DropDown
  • __DropDown 1
  • __DropDown 2
  • __DropDown 3
  • _ShortCodes
  • _SiteMap
  • _Error Page
  • Documentation
  • Video Documentation
  • Download This Template

Footer Menu Widget

  • Home
  • About
  • Contact Us

Social Plugin

JINI. Powered by Blogger.

Copyright © Jini's Blog | Powered by Blogger
Design by Hardeep Asrani | Blogger Theme by NewBloggerThemes.com | Distributed By Gooyaabi Templates