본문 바로가기

추상화3

추상적인 책임 vs 상세한 책임 앞선 글들에서 객체지향 설계의 품질은 책임을 어떻게 설정하는가에 달려있다고 했다. 객체지향 설계를 하다보면 책임의 레벨을 어떻게 설정해야할지 고민할 때가 올 것이다. 오늘은 어떤 수준의 책임을 만들어내는 것이 적합한지에 대해 이야기 해보고자 한다. 1번 상황 위의 상황을 보자. 이와 같은 경우는 책임에 대한 자율성이 높지만 너무 추상적인 책임이다. 이러한 경우에는 자율성이 높은 만큼 잘못된 의도대로 책임이 수행되지 않을 수 있다. 2번 상황 위와 같은 경우는 1번과는 다르게 아주 상세한 수준으로 구현이 되었다. 이렇게 하면 정확하게 의도한대로 책임을 수행하긴 하지만 책임에 대한 자율성이 제한된다. 마치 신입직원(?)처럼 팀장에게 의존할 수 밖에 없는 형태이다. 3번 상황 1번 상황에서의 일하라라는 책임은.. 2022. 10. 25.
객체지향 설계를 위한 추상화 메커니즘 정리 하이! 오늘은 객체지향의 개념중 가장 중요하다 할 수 있는 추상화에 대해 총정리 해두려고 한다. java나 c#등 객체를 이용한 , 객체를 지향하는 다양한 언어가 있다. 객체지향으로 짜여진 프로그램에서는 무수히 많은 객체가 서로 메시지를 주고 받으며 협력한다. 너무나 많은 객체가 있다보니 이를 효율적이고 단순하게 관리할 필요가 있다. 객체지향에서는 대표적으로 추상화라는 방식을 통해 복잡한 도메인을 단순화 시키고 직관적으로 만든다. 추상화란 현실을 어느정도 반영하되, 구체적인 사물간의 공통점은 취하고 차이점은 버리는 분류를 통해, 그리고 중요한 부분을 강조하기 위해 불필요한 세부사항은 버리는 일반화를 통해 이루어진다. 아래는 객체지향에서 활용하는 추상화 메커니즘을 정리해 놓은것이다. -분류와 인스턴스화 -.. 2022. 9. 2.
[OOP] 니객망 1탄 - 객체지향 프로그래밍 이란? 하이~ 어렸을 때 부터 나는 농구를 좋아했고, 고향팀인 창원 LG팀을 거의 20년 넘게 응원하고 있다. 창원 LG 감독 중에 강을준이라는 감독이 있었는데 작전 타임때 종종 구수한 사투리로 ...! '니가 갱기를 망치고 있어 ~' 라는 말을 자주 했다. ㅎㅎㅎ 오늘 부터는 그동안 내가 잘못 이해하고 있던 .. 그리고 개념을 안다고 생각했던 객체지향에 대해 완벽하고 꼼꼼하게 포스팅을 해보려한다. 이름하여 ....! '니가 객체지향을 망치고 있어~' 니!! 객!! 망!! 시리즈~~ 대부분의 회사에서 프로젝트를 할때 설계를 하고 설계문서를 바탕으로 코딩을 할 것이다. 대표적으로 사용하는 설계방식이 바로 객체지향 설계인듯 하다. 그 만큼 이 개념을 확실히 잘 알고 사용하는게 좋을 듯한데, 개인적인 바램으로는 직접.. 2020. 2. 18.