본문 바로가기

AdvancedJava

복구한 인터페이스 내용

class 선언


<modifiers> class <class_name>


{


[<attribute_declarations>]

[<constructor_declarations>]

[<constructor>]


}


Interface


내가 다른 객체와 정보를 주고받을때, 정해진 규격이나 규약을 정의해서 서로 정형화되게 교환하기 위해서 사용한다. 



이렇게 형식으로 알려주는 게 되게 여러가지 의미가 있다. 


전혀관계가 없는 클래스 들을 묶을 수 있음


뒤에가서 인터페이스 자세한 걸 배움.



언제 쓸까 ? 

  - data를 읽어올 때, 어디서 읽어 올거냐 ? 잘... 모르겠다. 근데 File에서 읽어올 수도 있고, Network에서 읽어올 수도 있다.

읽어오는 데이터를 가지고 파싱 하는 걸 만들건데 ... 


이럴 때 인터페이스를 만든다. 


interface InpuStream;{

read();

available()

close()

}



FileInputStream implements InputStream(){

read()

available()

close()

}



객체를 기술하는건 아는데 .. 관계를 기술하는건 설명하지 않음

그 관계를 기술 하는 방법에 interface를 많이 쓴다. 


그래서 인터페이스............................................................................................................................는 oop 이다. 


또다른 인터페이스 예 :)


DI라는 기술이 있다. 

dependency Injection라고 하는데


먼저 알아야 될건

Top down 개발방식 : 위에서 부터 작은거 만드는거

Bottom up 개발방식 : 작은거부터 만들고 큰거로 만들고, 더 큰거 만드는거 



Top down 개발방식은 사용자 중심개발, 진행율 보기가 어려움 작은 부분들을 개발하지 못하면 전체 프로젝트 망함

Bottom up 은 기술 중심 개발, 100%구현, 그치만 진행율 보기가 어려움



그래서 


Top down 방식으로 많이 하려고함. 

근데 전체 프로젝트가 망하는 걸방지하기 위해서 임의에 인터페이스를 만들어 사용함.


나중에 그 인터페이스를 설정해주는 방법을 Dependency Injection 이라고 한다 


여러 사람이 구현할 때,인터페이스로 구현하여 만드는 것이 효율적으로 구현할 수있다는것.



인터페이스를 쓰는 또 다른 예가 있는데 


옵져버 패턴을 보면 안다. 

리스너 패턴이라고도 한다. 


다른 예가 있는데...


ListView



'AdvancedJava' 카테고리의 다른 글

[2일차]is-a,has-a 호출  (0) 2016.07.06
[2일차] Virtual Method  (0) 2016.07.06
final keyword  (0) 2016.07.05
static Keyword  (0) 2016.07.05
어노테이션, 생성자, 제어자  (0) 2016.07.05