객체지향 이야기 – 2.상속설계(2)

대한민국 개발자와 객체지향 이야기 - 2.상속설계(2) 복잡성이 소프트웨어 개발의 가장 기술적인 주제라면, 확장성은 소프트웨어 생명에 있어 심장과도 같다. 상속 설계를 살펴보며, 두 가지 주제에 대해 차례대로 알아보고, 평가해 보자. 정명수…

Continue Reading객체지향 이야기 – 2.상속설계(2)

객체지향 이야기 – 1.상속설계(1)

대한민국 개발자와 객체지향 이야기 - 1.상속설계(1) 필자의 한 후배가 술자리에서 자신이 설계한 클래스 다이어그램을 보여주며 정상적인 클래스 계층도를 형성하고 있는지 물어본 적이 있다. 얼핏 보기에 다형성을 적용하기에 무리가 없고, 상속관계도…

Continue Reading객체지향 이야기 – 1.상속설계(1)

트레이트 – 11.다중 상속 모델

클래스는 동시에 여러 개의 트레이트를 조합할 수 있습니다. 클래스에 use 문을 사용하여 여러 개의 트레이트를 쉼표로 구분하여 나열하면 다중 트레이트(multiple trait)를 구현할 수 있습니다. 다중 상속 모델 다중 상속(multiple inheritance)의…

Continue Reading트레이트 – 11.다중 상속 모델

트레이트 – 02.수평적 재사용

PHP의 수평적 재사용(Horizontal Reuse) 클래스 계층 구조로부터 독립적으로 행위(behavior)를 재사용하는 수평적 방법의 주요 동기는 명확한 개념적 배경과 최적의 코드 재사용을 동시에 사용하여 클래스 및 클래스 계층을 모델링 할 수 있는…

Continue Reading트레이트 – 02.수평적 재사용

개발자가 놓치기 쉬운 자바의 기본 원리

JAVA 언어에 대한 오래된 내용이지만 객체지향언어를 다루는데 있어서 놓치기 쉬운 기본 원리를 설명하고 있으므로 PHP 언어에서도 참고할 만 합니다. JAVA에서만 구현되는 Tiger, Debug write, 예제 코드 등은 보지 않으셔도 될…

Continue Reading개발자가 놓치기 쉬운 자바의 기본 원리

트레이트 – 20.트레이트 관련 함수

리플렉션 기능 함수 리플렉션 API와 관계없이, 기존의 클래스 또는 인터페이스에서 제공되는 관련 함수와 발을 맞춰서 리플렉션 기능의 트레이트 함수가 추가되었습니다. trait_exists 클래스와 인터페이스가 아닌 트레이트가 존재하는지 여부를 반환함 get_declared_traits 클래스나…

Continue Reading트레이트 – 20.트레이트 관련 함수

트레이트 – 18.트레이트 프로퍼티

트레이트는 프로퍼티를 정의할 수도 있습니다. 그러나 트레이트에서 정의한 프로퍼티를 클래스에서 다시 정의하려면, 클래스에서 정의한 프로퍼티는 트레이트와 호환되어야 합니다. 즉 동일한 가시성과 초기값을 지정하여야 합니다. 트레이트와 클래스의 프로퍼티가 서로 호환되지 않으면,…

Continue Reading트레이트 – 18.트레이트 프로퍼티