2010년 7월 6일 화요일

Factory Pattern

패턴 그리고 객체지향적 코딩의 법칙」중에서 정리

Factory

이름
그대로
객체
생성

enum
, argument
통해
구체화된
자식 class
객체 return
new & delete
법칙에
위배
되지
않음

그렇지만
자식 class
함수를
수행하고
싶을
경우 type
통해 downcasting
이루어져야
( 다중
상속

문제가
발생 )
Class ...Factory ( arg e_type )
( switch ( e_type )
case e1: new CE1;
case e2: new CE2;

...)


 

Abstract Factory

연관성
있는
객체들을
모아서 interface
제공

Example )

Class IABFactory ( interface class )
CCom1Ob : public IABstractFactory
{ virtual Ob1 * CreateA () ;
virtual Ob2 * Createb () ;
...}

pOb1 = CCom1-> CreateA;
pOb2 = CCom1-> CreateB;
...
delete pOb1 , pOB2 ;


 

2010년 7월 2일 금요일

[iPhone] Change the Theme

해킹 아이폰에만 해당됩니다.

무료로 다운 받을 수 있는 사이트 모음

다운 받은 테마를 옮기는 폴더

/private/var/stash/Themesxxxxx

안을 살펴보면 된다. ~ 이상 ㅎ

2010년 6월 25일 금요일

Simple Singleton Example


From : http://sourcemaking.com/design_patterns/singleton/cpp/1

class GlobalClass

{

...
static GlobalClass *instance()

{

if (!s_instance)

s_instance = new GlobalClass;

return s_instance;

}
...

};

// Allocating and initializing GlobalClass's

// static data member. The pointer is being

// allocated - not the object inself.

GlobalClass *GlobalClass::s_instance = 0;


void foo(void)

{

GlobalClass::instance()->set_value(1);

cout << "foo: global_ptr is " << GlobalClass::instance()->get_value() << '\n';

}
  
 위에서 보는 것처럼 단지 공유 객체 포인터를 static으로만 선언하는 것만으로는불 충분하다. 좀 괜찮게 보일 될려면 GlobalClass::instance() 이렇게 한 꺼풀더 씌우자
From : http://sourcemaking.com/design_patterns/singleton/cpp/1

2010년 6월 23일 수요일

습관을 고치자 – in programming

초기의 간단한 구조에서는 그닥 class diagram이 필요가 없지만

깔끔하게 design pattern 등도 고려가 되어서 잘 구조가 된다.

그렇지만 어느 순간 덧붙이다 보면

class 간 partition이 제대로 이루어 지지 않는다.

이 이유 중 하나가 새로운 기능 추가 시 기존의 class diagram을 보지 않고

보이는 데로 추가를 하기 때문에 발생한다.

2010년 6월 22일 화요일

간단하지만 헷갈리는 virtual destructor

이 자료는 http://glotalk.egloos.com/2018168 에서 퍼옴을 밝힙니다.

#include "stdafx.h"
struct A1      { virtual ~A1() { printf("A1 dtor\n"); } };
struct A2 : A1 { virtual ~A2() { printf("A2 dtor\n"); } };
struct A3 : A2 { virtual ~A3() { printf("A3 dtor\n"); } };
struct B1      { ~B1() { printf("B1 dtor\n"); } };
struct B2 : B1 { ~B2() { printf("B2 dtor\n"); } };
struct B3 : B2 { ~B3() { printf("B3 dtor\n"); } };
int _tmain(int argc, _TCHAR* argv[])
{
    A1 * a = new A3;
    delete a;
    printf("\n");

    A3 * a2 = new A3;
    delete a2;
    printf("\n");

    B1 * b = new B3;
    delete b;
    printf("\n");

    B3 * b2 = new B3;
    delete b2;
    printf("\n");

    return 0;
}


 

출력은

A3 dtor
A2 dtor
A1 dtor

A3 dtor
A2 dtor
A1 dtor

B1 dtor

B3 dtor
B2 dtor
B1 dtor

2010년 6월 20일 일요일

C++ 다중 상속의 개념

class간 결합을 interface로 따로 분리됨으로써 class 간 복잡도, 결합도가 떨어진다.


 

interface는C++ 에서는 class로 표현, JAVA에서는 interface keyword로 표현


 

C++ 에서 보통 interface를 virtual 로 정의하고 구현은 뒤로 미루는데 이것이 interface정의의 원칙이란다.


 

Java에서는 interface에서 class에서 정의된 함수들을 그냥 쓰면 되지만

C++ 에서는 interface의 함수들을 이용하기 위해서는 그 interface를 정의된 class의 상속을 통해서

이용이 가능하다. 따라서 다른 class에서 정의된 interface를 사용하기 위해서는 서로 다른 class를 상속

하는 길 밖에는 없다.

  • 패턴 그리고 객체지향적 코딩의 법칙 story 3 일부분에서

2010년 6월 11일 금요일

헷갈리는 const 용법 ( in Effective C++ )

전통적 Const 용법

Const char *p = greeting

비상수 포인터 , 비상수 데이터

Char * const p = greeting

상수 포인터 , 비상수 데이터


 

class에서 const

class TextBlock {

    public :

    ...

     const char & operator [] const ( std::size_t position ) const { return text[ position ] ; } // 상수 객체에 대한

     const char & operator [] ( std::size_t position ) const { return text[ position ] ; }         // 비상수 객체에 대한

    ...

}

    

비상수 멤버 호출

상수 멤버 호출

TextBlock tb("hello");

std::cout<< tb[0];

const TextBlock tb("hello");

std::cout<< tb[0];


 

여기서 파생되는 유의점

std:;size_t CTexxtBock::length () const

{    

    // 내부에서 class 변수들을 수정한다면 error

    // 왜냐하면 여기서 변수를 수정한다면 상수 멤버를 호출한 것에 대한 것과 모순이 발생

}

2010년 4월 18일 일요일

1Q84 #1을 읽고

<1Q84 #1 >
 - 명백히 들어나는 소설 전체에 깔아놓은 의문점
 1. 1편만 봤지만 정체를 알수 없는 소설 - 이오마메가 달 2개로 보는 것은 후에 어떻게 설명할 것인지 궁금\

 2. 리틀 피플 ->  늙은 부인 말에 의하면 교주에 의해 4번째 범해진 입에서 나와서 형성이 됨  ( 초현실 소설인가 ;;;)
 공기번데기 쓴 소녀는 왜 리틀피플은 선악으로 나누지 않고, 그들이 영리하다고만 충고를 덴코에게 했을까 ?
 그 소녀는 드라나기 싫은 존재인데 애 소설로 드러냈을까 ?
 뜬금없이 SF 소설로 가는 것인가 ?

 3.  암시가 나오는데 교주에 당한 1번째 소년은 자기 딸이라는 것으로 봐서 선구를 만든 후카다일 가능성이 있고 ,
 강력한 카리스마를 이용해서 교주로 군림할 수도 있음
  딸은 공기번데기를 쓴 자기 딸일 가능성 있음

 4. 어떻게 아모마메랑 덴코는 초등이후 헤어졌다면서 같은 노래 < 신포니에타 > 를 공유하는 것인가 ?

 5. 아오마메가 도서관에서 읽은 기사에 NHK 수금원이 죽었다고 나오는데 덴코 아버지 인거 같은데 아직 언급없음
  암시로 그 수금원은 정직원 승급후 죽었음


 




 

2010년 1월 13일 수요일

행동 하나가 미치는 영향

무심코 출발하기전 고스톱 한판이 몇시간걸렸을때의 황당함 .
난 지금 변화가 필요하고 그 첫번째는 세심함이다 좀더 행동이 미치는 파장을 생각하자

파랑새.100104 빌게이츠 MBC 프로

Dream Come True

1. 먼저 detail Dream 이 있는지 확인
 - simple, 모험심

2. Come 을 하려고 노력
 - self talk형 ( 피카소 : 대비 (고흐))
 - image 형   (콘래드 힐든 : 사진 찍고 이미지화 )

+  윌리엄 게이츠
  세상에 운명이란 없다. 세상에 모든 일이 자기가 어떻게 생각하고 어떻게 행동하느냐에 따라
 결과가 바뀌게 된다.

+ 현려 ( 현명하고 사려깊다 )
  돈만 버는 경영자가 아닌 경우를 뜻함
  미리 돈을 많이 벌었을 경우 반을 내어놓을 생각을 하고 있었다.
 

 

2009년 12월 18일 금요일

Dan pink



In fact, brain science has proven that monetary rewards aren't motivational at all. When we
experience something as rewarding, the neurotransmitter dopamine is released by an area of
the brain known as the nucleus accumbens, and creates an effect not unlike that of cocaine.
Our mental processing speeds up, our focus is sharpened, and we experience intense pleasure.
But brain scans have shown that it is not the reward that causes the release of dopamine, but
engagement in the work leading to the reward.
The reward isn't motivational; the work itself is
.
In fact, extrinsic rewards have been found to decrease our intrinsic motivation.


 

나랑 다른 분야의 글이지만 생각해보면 내 쪽에도 적용할 수 있는 글이 많은 블로그에서 발췌하였다.

http://read-lead.com/blog/959

여기다.


 

기업 경영에 대한 이야기지만 지금 나처럼 잘해도 물질적인 보상을 받을 수 없는 처지에 있는 사람이 어떤 마인드로

일에 임해야 되는지를 생각하게 해준다.




2009년 12월 13일 일요일

하루의시간

많은시간을 tv프로그램에 치중하고 있다.
빠질수밖에없는이유가수동적즐거움을주기때문이다.
현재 패배자 심정에 사로잡혀있는 내가 어쩌면 유일하게 즐거움을 느낄수있는 방법이다.
필요함것은 tv보다 일당 책을 가까이 하다.
여기서 멈추지 않는다면 앞으로 예상되는 피혜가 엄청나다. 치유하기 힘글겠지만 하나씩 바꿔가자

조금의 성과를 너무 부풀려서 다시 원래의 즐기는 나로 돌아간다. 다른 사람은 객관적으로 잘 뚫어조면서 내 자신은 객관적으로 보지못하는가? 스스로를 객관적으로 돌이켜보라

2009년 12월 6일 일요일

Upload the picture using iPhone


Uploading some context can be easily done,so my blog can be more active.
Picture is a my working space

2009년 11월 4일 수요일

히어로즈 특별판

<인상 깊었던 점 >
쿠리우 검사  : 모든 것이 납득이 될 때 까지  끝까지 파고든다. 그리고 모든 사람들에게 인정받고 있다.

=> 분명 나도 파고드는데는 누구보다 뒤지지 않고 분위기를 잘 이끈다
     그렇지만 막상 내가 발표를 잘 못한다.
     모든 사람들에게 납득하게 만드는 발표기술이 부족하다. 더 이상 그럴수도 있지라는 범위에 벗어났다.
     지식을 나만 알고 있다고 끝나는 것이 아니다. 이렇게 설명을 못하고 대인 앞에서의 발표 능력이 부족하다면
     앞으로 한계를 가질 수 밖에 없다.
 
     발표를 못할 수 밖에 없는 원인 중 하나가 전날 잠못자고 준비하고, 리허설도 제대로 하지 않는다 .
     예상되는 답변에 유동적으로 대처하지 못한다.
     왜냐하면 잠을 못자고 머리가 클리어하게 작동하지 않으니 악순환인 것이다.
 
어쨌든 난 신념이 부족하다. 너무 막살지 말고 인생에서 어떤 기준은 세우자~

타키타 : 부인에 대한 사랑. 부인이 죽어서도 부인의 뼈가 뿌려진 바다까지 사랑하고 있다.
      정착해서 죽어서도 사랑할 수 있는 그런 여자를 만나자.
      많은 여자를 만나봐야 소용없다.
      시간과 돈, 정력 낭비다
 
      

2009년 10월 23일 금요일

일의 우선순위 정하기

지금 살면서 일의 우선순위를 전혀 파악을 못하고 있는 것 같다

취직을 할지 대학원을 갈지 모호한 가운데
여자, 술에 빠져있고 내 스스로 절제를 못하고 있다
좀 더 스스로 채찍질 해야 될 필요가 있다

현재 어뢰 모델을 파악해야 되고, 시스템 프로그래밍 프로젝트
주말에 시험도 있지만
전혀 긴장을 하지 않고 놀고 있다
좀 더 분발하자
일단 머든 시작하자~

2009년 8월 18일 화요일

여자친구란~

나에게도 다시 사랑이 찾아왔다.

같이 있을 때엔 항상 웃어주고
같이 있으면 즐겁고
헤이지면 또 보고 싶고

하지만 이런 과정에서 주말마다 대구에 가야 했고
평일에도 좀처럼 업무에 집중을 못하고

무엇보다  내 자신이 위기다.
최근에 너무 부진하고 발전은 커녕 계속 퇴보하고 있다 .

일단 술부터 줄이고 독해지자

2009년 4월 5일 일요일

오피스 2007 아웃룩 최소화시 트레이로 이동

아웃룩을 최소화 시킬 때 시스템 트레이로 넣고 싶다면

  HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Outlook\Preferences 에 MinToTray라는 레지스터리 추가
타입 : DWORD
value = 1