SRP(Single Responsibility Principle) : 단일 책임 원칙

https://camo.githubusercontent.com/6d0347e6b57ee904efa34199c12003c3a5783377d76807449c44f0de2c21f1db/68747470733a2f2f706f737466696c65732e707374617469632e6e65742f32303135313030385f37342f7261696e3438335f3134343432333032363834353372443974575f4a5045472f3030312e6a70673f747970653d7731

위의 클래스 구조는 남자 클래스가 너무 많은 역할을 가지고 있다. 다음과 같이 분리할 수 있다.

https://camo.githubusercontent.com/e511a2f8d0ff2c999607cd652aaaca35c1a1a332c27f24042cfe0006c604e2d0/68747470733a2f2f706f737466696c65732e707374617469632e6e65742f32303135313030385f32392f7261696e3438335f31343434323330323638373038386570374f5f4a5045472f3030322e6a70673f747970653d7731

OCP(Open Closed Principle) : 개방 폐쇄 법칙

https://camo.githubusercontent.com/ff7a523eb8ecadf1109194e17523428f0c53976323335c3f1268660c96051e8b/68747470733a2f2f696d67312e6461756d63646e2e6e65742f7468756d622f523132383078302f3f73636f64653d6d746973746f72793226666e616d653d687474702533412532462532466366696c65332e75662e746973746f72792e636f6d253246696d61676525324632363741444234463536393834373331314630454636

마티즈 또는 쏘나타 객체에 변경사항이 있을 경우 운전자 객체에 영향을 끼칠 수 있다.

https://camo.githubusercontent.com/7dfd02c2573b5faf97b1e59ff2e16464ccf60b9230e8a8d824fb3c7d2bb19189/68747470733a2f2f696d67312e6461756d63646e2e6e65742f7468756d622f523132383078302f3f73636f64653d6d746973746f72793226666e616d653d687474702533412532462532466366696c65322e75662e746973746f72792e636f6d253246696d61676525324632323537304334423536393834373637333038363135

이렇게 상위 클래스 또는 인터페이스로 묶음으로써 자동차 객체들에게 변경사항이 있을 경우 운전자 객체의 영향을 최소화할 수 있다. 또한, 또 다른 종류의 자동차 객체가 추가되더라도 다른 객체에 영향 없이 추가할 수 있다.

JDBC : 개방 폐쇄 법칙의 좋은 예시

https://camo.githubusercontent.com/640ca37845199c7a794e3fea5b06c44da4278243205a4a466cffd4ee8e96c0ba/68747470733a2f2f696d67312e6461756d63646e2e6e65742f7468756d622f523132383078302f3f73636f64653d6d746973746f72793226666e616d653d687474702533412532462532466366696c65312e75662e746973746f72792e636f6d253246696d61676525324632333731344434303536393834433344334136364643

자바에서 제공하는 JDBC 에서는 Connection 방법만 수정하면 여러 DBMS 를 사용할 수 있다.

LSP(Listov Substitution Principle) : 리스코프 치환 원칙