인터페이스

객체의 책임과 메시지 객체 설계를 더 잘하기 위해 객체를 이해해보자.. 객체는 객체지향 공동체에서 어떤 역할을 하는 것일까..? 자율적인 책임 객체지향 공동체를 구성하는 기본 단위는 ‘자율적'인 객체 자율적인 객체? 스스로 정한 원칙에 따라 판단하고 스스로의 의지를 기반으로 행동하는 객체 객체가 어떤 행동을 하는 유일한 이유는 다른 객체로부터 요청을 수신했기 때문이다. 요청을 처리하기 위해 객체가 수행하는 행동을 책임 이라고 한다. 즉, 자율적인 객체란 스스로의 의지와 판단에 따라 각자 맡은 책임을 수행하는 객체 객체가 자율적이기 위해서는 객체에게 할당되는 책임의 수준 역시 자율적이어야 한다. 상세한 수준의 책임들은 자율성을 제한한다. 즉 요청하는 객체에 의존할 수 밖에 없다. 증언해라 vs 목격..
인터페이스에 선언된 프로퍼티 구현 코틀린에서는 인터페이스에 추상 프로퍼티를 선언할 수 있다. interface User{ val nickname: String } 이 인터페이스를 구현하는 세 클래스를 만들어보자. 이 세 클래스는 각각 다른 방식으로 추상 프로퍼티 nickname을 구현한다. // 주 생성자에있는 프로퍼티 class PrivateUser(override val nickname: String) : User // 커스텀 게터(nickname은 매번 호출될 때마다 substringBefore를 호출해 계산) class SubscribingUser(val email: String) : User{ override val nickname: String get() = email.substringBefo..
코틀린 인터페이스 코틀린 인터페이스 안에는 추상 메소드뿐 아니라 구현이 있는 메소드도 정의할 수 있다. (자바8 디폴트 메소드처럼) interface Clickable{ fun click() } class Button: Clickable{ override fun click() = println("I was clicked") } >> Button().click() I was clicked 자바에서는 extends와 implements 키워드를 사용하지만, 코틀린에서는 클래스 이름 뒤에 콜론(:)를 붙이고 인터페이스와 클래스 이름을 적는 것으로 클래스 확장과 인터페이스 구현을 모두 처리한다. 코틀린에서는 override 변경자를 꼭 사용해야 한다. interface Clickable{ fun click() ..
깡냉쓰
'인터페이스' 태그의 글 목록