Study13 object 설계 품질과 트레이드오프 발표 객체 지향 설계 객체 지향 설계는 올바른 객체에게 올바른 책임을 할당하면서 낮은 결합도와 높은 응집도를 가진 구조를 가진 구조를 창조하는 활동을 말합니다. 이 정의에는 객체 지향 설계의 2가지 관점이 섞여 있는데, 첫번째는 객체지향 설계의 핵심이 설계라는 것과 두번째는 책임을 할당하는 작업이 응집도와 결합도와 같은 설계 품질과 연관되어 있다는 것입니다. 설계는 변경을 위해 존재하고 훌륭한 설계란 합리적인 비용안에서 변경을 수용할 수 있는 구조를 만드는 것입니다. 그리고 훌륭한 설계를 만드는 것은 객체의 행동에 초점을 맞추어 설계를 하는 것이 좋은 설계 방법이 됩니다. 하지만 이 방법과는 다르게 데이터를 중심으로 설계를 했을 경우 변경에 유용하지않은 객체를 만들게 됩니다. 이러한 차이를 확인하기 위해 이번.. 2023. 7. 25. Object 객체지향 프로그래밍 발표 (준비중) 협력, 추상화 중점 발표 협력 Screening, Reservation, Movie 사이의 협력 협력은 객체들간의 요청, 응답 연관 관계를 표현한 것을 말합니다. 협력을 구성하는 처음엔 시스템의 요구사항을 정리합니다. 정리된 요구사항을 토대로 객체들의 행동을 정의하고 각 행동을 기준으로 행동을 아는 객체와 행동을 하는 객체로 구분하게 됩니다. 그리고 이런 객체들의 관계를 표현한 것을 협력이라고 합니다. 협력을 설명하기 위해 페이지 처음 영화와 상영 개념을 설명하는 것으로 시작하려 합니다. 영화는 제목, 상영시간, 가격 정보와 같이 영화와 관련된 기본 정보를 가지고 있습니다. 반면에 상영은 실제로 관람객들이 영화를 관람하는 사건을 말합니다. 우리들은 흔히 영화를 예매한다고 표현하지만 실제로 예매하는 대상은.. 2023. 7. 18. object 객체, 설계 발표 결합도, 응집도, 캡슐화 중점 발표 결합도 기능간의 결합도가 높아지면 유지보수가 어려워집니다. 여기서 유지보수가 어려워진다를 크게 2가지로 볼 수 있습니다. 연관된 다른 클래스가 변경되면 함께 변경되어야 합니다. 다른 프로그램의 클래스에서 재사용이 힘들어 집니다. 결합도를 높이는 코딩 방식은 객체지향의 사실과 오해 4주차 - 정리글에서 확인하실 수 있습니다. 현재는 모든 결합도 방식을 설명하지 않고 저희들이 흔히 사용 하는 내용 결합도에 대해 설명하려 합니다. 사실 저희가 흔히 사용하는 내용 결합도는 가장 많이 사용하는 Getter/Setter이기도 하고, 한편으로는 가장 결합도 높은 방식의 코딩이기도 합니다. class Trump{ private int height = 10; private int we.. 2023. 7. 18. 클린 코드 3장 3장 함수 인수(P50) 인수가 없는 함수 함수의 인수 1개 public SetupTearDownIncluder{ private StringBuffer PageContent; public void includeSetupPage(PageContent){ } } 함수의 인수 0개 public SetupTearDownIncluder{ private StringBuffer PageContent; public void includeSetupPage(){ PageContent = new StringBuffer(); ... } } 위 코드에서 메서드를 만든다고 가정했을 땐 includeSetupPage(PageContent)보다 includeSetupPage가 더 이해하기 쉽습니다. 왜냐하면 includeSetupP.. 2023. 6. 23. 이전 1 2 3 4 다음