반응형 추상화 (Abstraction)2 객체지향5대원칙-OCP(Open Closed Principle) - 개방 폐쇄 원칙 객체지향 5대원칙(SOILD)의 원칙중 O에 해당하는것으로 확장에는 열려있고, 수정에는 닫혀있어야 한다는 원칙이다. 이게 무슨말일까? 예를들어보자. 농어업에는 농민, 어민이 있다. 이를 코드화 하면 이렇다. class Job: def dowork(self, job): if job == "농업": print("농업을 한다.") if job == "어업": print("어업을 한다.") if __name__ == "__main__": job = Job() job.dowork("농업") job.dowork("어업") 여기서 만약 여기에 축산업이라는 다른 직업군을 추가한다면 어떻게 될까? 그럼 어쩔수 없이 Job클래스 자체를 수정해야 한다. 이는 개방폐쇄원칙에 위배될수밖에 없다. 이를 위배되지 않도록 변경하면 .. 2023. 5. 24. 객체지향5대원칙-DIP(DIP-Dependency Inversion Principle) - 의존 역전 원칙 의존 역전 원칙(DIP-Dependency Inversion Principle) 객체지향 5대원칙(SOILD)의 원칙중 D에 해당하는것으로 의존관계생성시 자주 변환하는것이 아닌 자주 변화하지 않는것에 의존성을 더 올려서 유지보수 능력을 올리기 위한 원칙이다. 그럼 예를들어보자 농부가 과수원에서 과일을 재배하는데 아래와 같다고 하자 package kr.co.touch; public class Apple { public void Culture(){ System.out.println("사과를 재배합니다."); } } package kr.co.touch; public class Orange{ public void Culture(){ System.out.println("오렌지를 재배한다."); } } packag.. 2023. 5. 23. 이전 1 다음 반응형