프로그래밍/java-oop(2)
-
값 객체(value object)
값 객체라 한번 생성된 객체에 상태 값을 바꿀수 없는 객체를 의미한다. 객체지향을 최대한 사용하려면 단순 계산을 할수 있는 primitive type을 최대한 줄여야 한다. primitive type을 최대한 줄임으로서 변경 가능성을 열어 둘수 있다. 예를 들어 money 값을 그냥 int 로 쓰고 있었지만 나중에 money 값의 형을 long으로 바꾸려고 하면 무시무시 한 영향도를 경험하게 된다. money 를 사용하고 있는 모든 클레스를 수정해야 되고 money 타입이 int에서 long 으로 변경 함으로 연관된 함수들도 모두 수정해야 되는 문제가 발생한다. 하지만 Money 란 객체를 만들어서 사용하게 되면 해당 객체의 타입만 Long형으로 바꿈으로 한층 더 변경 가능성에 대해 유연하고 Money ..
2021.07.16 -
믹스인(mixin)
믹스인의 정의를 표현한 글을 보면 이해하기가 쉽지 않다 글의 정의는 어렵지만 간단하게 결국 멀티 인터페이스 또는 추상 클레스를 계층형으로 구현하여 메소드를 조합하는 것을 말하는 겁니다. 계층 추상 클레스 public abstract class Singer { void SingerPrint(){ System.out.println("SingerPrint"); }; } public abstract class SongWriter extends Singer{ void songWriterPrint(){ System.out.println("songWriterPrint"); }; } public class SingSongWriter extends SongWriter { } public class Main { publi..
2021.07.15