Posts

Showing posts from November, 2020

refactoring #3 organizing Data

 1. getter, setter의 사용. 당연하다고 생각했지만, subclass 에서 getter, setter 를 redefine 할 수 있다는 장점. setter  를 아예 없앰으로써, construct 할때 설정된 값이 항상 사용되는 final  효과를 줄 수있다는 점은 처음 알았다. 2. business logic  dto  와 GUI 에 사용되는  dto 는 반드시 분리해야한다. 그렇지않으면 골치아파진다. 그럼 buisness 를 여러명이 같이 개발 할 수도, 여러 GUI 에 대한 dto 를 각각 개발할 수도 없어진다. gui  관련된 dto 는 만들어본적이 없었는데. 얼마전 경험을 하다가 겪었다. 반드시 분리해야한다. 혼자 하는데도 불구하고 여려번 수정해야 하는 노가다가 있었다. 여러명이 작업한다면 불가능했을것이다.  3. encapsulation 이 java  의 기본이긴 하지만. Point  라는 java 클래스의  x, y 변수는 public 이라고 한다. 성능상의 큰 영향이 있는 이런 특수한 경우에는 getter/setter 대신 public 접근을 할 수도 있다. 하긴 지금 회사도 초반에 그런 것들이 꽤 있었다. 악영향을 끼치지 않고, readable  하고, 성능적인 이득을 얻는 경우. 4. collection 의 경우, encapsulation 의 형태가 좀더 달라야한다. getter/setter 라고는 하지만,  collection 자체를 getter  로 내어주는 경우, readonly  가 되어야 하며, setter 대신 각각의 item 에 대해 add, remove item 하는 함수를 만들고. setter 자체는 collection replace 가 되기 때문에 이에 유의해야 할 필요가 있다.  change value to ref change ref to value change bidir...