대부분의 클래스는 독자적인 자원으로만 제 역할을 다하기 힘든 경우가 많다. 따라서 클래스간 리소스는 의존하게 되고 이는 의존성으로 프로그램의 복잡도에 영향을 미친다. 여기서의 예제에서는 SpellCheck라는 클래스가 Dictionary를 사용하고 의존성을 가진다고 보자. 대표적으로 두 가지 부적절한 구현이 존재한다. 1) static 클래스의 사용 public class SpellChecker { private static final Lexicon dictoary = new KoreanDictionary(); private SpellChecker(){ //Noninstatiable } public static boolean isvalid(String word){ throw new UnsupportedO..