소프트웨어 모듈은 변경의 이유가 단 하나여야만 한다.서로 다른 액터가 의존하는 코드를 분리해야한다.데이터와 메서드를 분리하는 방식으로 해결할 수 있다.소프트웨어 개체의 행위는 확장할 수 있어야 하지만, 이때 개체를 변경해서는 안된다.시스템을 확장하기 쉬운 동시에 변경으