Whiteship's Note


서비스 계층 다이어트 시키기

모하니?/Coding : 2008.07.15 14:51


    private void makeNewMonthlySalesSum(Supp supp, Date date) {
        MonthlySalesSum monthlySalesSum = new MonthlySalesSum();
        monthlySalesSum.setDate(date);
        monthlySalesSum.setSupp(supp);
        this.dao.add(monthlySalesSum);

        MonthlySalesSumDetail detail = null;
        for (Branch branch : branchDao.getBranchBySupp(supp.getId())) {
            DTO dto = this.dao.makeMonthlySalesSumDTO(branch, date);
            detail = makeNewMonthlySalesSumDetail(dto, branch, date);
           monthlySalesSum.addSalesCount(detail.getSalesCount());
            monthlySalesSum.addSellingQty(detail.getSellingQty());
            monthlySalesSum.addProfit(detail.getTotalProfit());
            monthlySalesSum.addSuppUnitPrice(detail.getTotalSuppUnitPrice());
            monthlySalesSum.addSuppUnitPriceWithoutText(detail.getTotalSuppUnitPriceWithoutTex());
            if(detail.getSalesCount() > 0){
                detail.setMonthlySalesSum(monthlySalesSum);
                monthlySalesSumDetailDao.add(detail);
            }
        }
        
    }

    private MonthlySalesSumDetail makeNewMonthlySalesSumDetail(DTO dto, Branch branch, Date date) {
        MonthlySalesSumDetail detail = new MonthlySalesSumDetail();
        detail.setBranch(branch);
        detail.setDate(date);
        if (dto != null) {
            detail.setSalesCount(dto.getSalesCount());
            detail.setSellingQty(dto.getSellingQty());
            detail.setTotalProfit(dto.getTotalProfit());
            detail.setTotalSuppUnitPrice(dto.getTotalSuppUnitPrice());
            detail.setTotalSuppUnitPriceWithoutTex(dto.getTotalSuppUnitPriceWithoutTex());
        }
        return detail;
    }


서비스 클래스에 있는 배치 작업 용 메소드들 입니다. 종합 정보를 생성하는데 상세 정보와 함께 묶어서 작업을 하고 있는데 코드가... 참... 거시기 합니다. 클래스에 들어있는 코드의 절반을 이 두 개의 메소드가 잡아먹고 있었습니다.

자세히 보니까 어떤 객체에서 값들을 꺼내서 다른 객체에 전달하는 일들이 전부 입니다. 흠... 옮길 수 있겠다!! 라는 생각이 젤 먼저 들었습니다. 잠시 뒤.. 오.. 당연히 옮겨야 되겠는데? 사실 저렇게 세팅해주는 일이 원래 저 서비스 클래스가 할 일은 아니니까... 걍 자기가 알아서 값들 세팅하면 되지 왜 서비스 계층이 저렇게 일일히 세팅하게 했을까나;; ㅠ.ㅜ (제가 코딩한 겁니다.ㅋㅋ)

그래서 코드를 고쳤습니다.


    private void makeNewMonthlySalesSum(Supp supp, Date date) {
        MonthlySalesSum monthlySalesSum = new MonthlySalesSum();
        monthlySalesSum.setDate(date);
        monthlySalesSum.setSupp(supp);
        this.dao.add(monthlySalesSum);
       
        MonthlySalesSumDetail detail = null;
        for (Branch branch : branchDao.getBranchBySupp(supp.getId())) {
            DTO dto = this.dao.makeMonthlySalesSumDTO(branch, date);
            detail = makeNewMonthlySalesSumDetail(dto, branch, date);
            monthlySalesSum.applyDetail(detail);
            if(detail.getSalesCount() > 0){
                detail.setMonthlySalesSum(monthlySalesSum);
                monthlySalesSumDetailDao.add(detail);
            }
        }
    }

    private MonthlySalesSumDetail makeNewMonthlySalesSumDetail(DTO dto, Branch branch, Date date) {
        MonthlySalesSumDetail detail = new MonthlySalesSumDetail();
        detail.setBranch(branch);
        detail.setDate(date);
        if (dto != null)
            detail.setByDTO(dto);
        return detail;
    }

코드를 1/3 가량 줄일 수 있었습니다. 야호~

서비스 계층은 가볍게 도메인 계층은 두툼하게...
자기가 할 일은 자기가 하자.

top

Write a comment.


m2eclipse 소개 기사

Good Tools : 2008.07.15 11:38


참조 : http://www.theserverside.com/tt/articles/article.tss?l=Introductiontom2eclipse

TSE에 올라온 m2eclipse 기사입니다. 스크랩캡춰까지해서 상세하게 설명해주고 있군요. 흠.. Q4E가 이길지 소나타입의 m2eclipse가 이길지... 몰겠어요.ㅋㅋ

m2eclipse
2007/11/15 - [Build/Maven] - Maven으로 프로젝트 생성하기
2008/04/18 - [Screen Casting] - pom.xml에 종속성 추가하기

q4e
2008/04/18 - [Build/Maven] - 이클립스용 Maven 플러그인 Q4E
2008/04/19 - [Build/Maven] - Q4E 플러그인 사용기 1


top

Write a comment.


20080715 GMP

모하니?/GMPing : 2008.07.15 11:19


News

prime minister 수상
publicly 공공연하게
troops 군대

For the first time publicly, Iraq's prime minister wants to know when American troops will be leaving his country.

Screen English

So what sould we do?
It's kind of funny. Maybe we sould just tell anyone.
No nononono.
We didn't do anythong wrong. It was just sweety.
Oh good. hey~ You guys are getting to know each other.
(I'm) Just showing her where we are on the map.

Pop's English

Just a smile, there is no way back.
Can hardly believe it. But there is an angel calling me reaching(사로잡다) for my heart.

Talk Play Learn

I would rather not ~ (~하지 않는게 낫겠어)
I'd rather not say.
I'd rather not drink.
I'd rather not sleep.
I'd rather not call her.
I'd rather not buy this.
I'd rather not stay here.
I'd rather not meet him.
I'd rather not invite them.
I'd rather not take the call.

Sound Sound Play

k 다음에 u,p가 오면 '끄'

kick up 피껍
drink up 드링껍
make up 메이껍
wake up 웨이껍
lock up 루껍
back up 베껍

Today Expression

off the record = 비공식 적으로


'모하니? > GMPing' 카테고리의 다른 글

20080724 GMP  (0) 2008.07.24
20080721 GMP  (0) 2008.07.21
20080718 GMP  (0) 2008.07.18
20080717 GMP  (0) 2008.07.17
20080716 GMP  (0) 2008.07.16
20080715 GMP  (0) 2008.07.15
20080710 GMP  (0) 2008.07.10
20080708 GMP  (0) 2008.07.08
20080707 GMP  (0) 2008.07.07
20080705 GMP  (0) 2008.07.05
20080704 GMP  (0) 2008.07.04
top

TAG GMP

Write a comment.