본문 바로가기

Programming268

예제5. 인터페이스의 도입 인터페이스로 추상화해놓은 최소한의 통로를 통해 접근하는 쪽에서는 오브젝트를 만들 때 사용할 클래스가 무엇인지 몰라도 된다. 인터페이스를 통해 접근하게 하면 실제 구현 클래스를 바꿔도 신경쓸 일이 없다. DConnection 클래스 생성자를 호출해서 오브젝트를 생성하는 코드가 여전히 UserDao에 남아있다.UserDao와 UserDao가 사용할 ConnectionMaker의 특정 구현 클래스 사이의 관계를 설정해주는 것에 대한 관심사를 담은 코드를 UserDao에서 분리하지 않으면 UserDao는 결코 독립적으로 확장 가능한 클래스가 될 수 없음. ConnectinMaker.java 1234567891011package springbook.user.dao; import java.sql.Connection.. 2014. 8. 20.
예제4. 클래스의 분리 상속관계도 아닌 완전히 독립적인 클래스로 만든다.SimpleConnectionMaker 라는 새로운 클래스를 만들고 DB생성 기능을 그 안에 넣음. 한번만 SImpleConnectionMaker 오브젝트를만들어서 저장해두고 이를 계속 사용.문제점1. 메소드 이름이 바꼈을 경우문제점2. DB커넥션을 제공하는 클래스가 어떤 것인지를 UserDao가 구체적으로 알고 있어야한다. UserDao가 SImpleConnectinMaker라는 특정 클래스와 그 코드에 종속적이기 때문에 DB커넥션을 가져오는 방법을 자유롭게 확장하기가 힘들어짐. SImpleConnectionMaker.java 12345678910111213141516package springbook.user.dao; import java.sql.Conn.. 2014. 8. 20.
예제3. 상속을 통한 확장 템플릿 메소드 패턴 : 슈퍼클래스에 기본적인 로직의 흐름(커넥션, SQL생성, 실행, 반환) 을 만들고, 그 기능의 일부를 추상 메소드나 오버라이딩이 가능한 protected 메소드 등으로 만든 뒤 서브클래스에서 이런 메소드를 필요에 맞게 구현해서 사용하도록 하는 방법 팩토리 메소드 패턴 : 서브클래서에 구체적인 오브젝트 생성 방법을 결정하게 하는 것 NUserDao, DUserDao 에서는 어떤식으로 Connection 기능을 제공하는지, 어떤 방법으로 Connection 오브젝트를 만들어내는지에 대한 관심을 가지고 있음. 상속을 통한 확장방법이 제공UserDAO.java12345678910111213141516171819202122232425262728293031323334353637383940414.. 2014. 8. 20.
jquery로 관람차 만들기 예전에 티몬인가 쿠팡에서 퍼블리셔가 관람차랑 롤러코스터 돌아가는거 만들어본거 보구 만들어봤음...이미지 구하는게 너무 힘들어서 스마일루^^ 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 ♥ ☻ ○ ☻ ○ ☻ ☻ ○ ☻ ○ ☻ ○ ☻ 2014. 8. 19.