편의점 결제 프로젝트 1

su dong·2023년 6월 14일
0

0. 서비스 개념

고객 요구사항

G25, gu, 세븐 3편의점에서 결재만 되게 해달라.

-> 편의점은 정해져 있으니 enum으로 관리
-> 결재 수단은 가장 간단하게 money만 사용

사용이 예상되는 객체

  • 사용자
  • 결제 서비스
  • 머니

UML

1. service, dto만들기

  1. service package 만들기
    결제서비스
    머니 어뎁터

  2. dto
    payRequest
    결제시 필요한 데이터

  • 편의점 종류
  • 결제 금액

-> 편의점 종류는 enum타입으로 생성
-> 생성자 만들기
-> getter, setter 생성

  1. payResponse
    결제 결과 반환
  • 결제 성공 여부
  • 결제 성공 금액

-> 결제 성공 여부는 enum타입으로 생성
-> 생성자, getter, setter 생성

ConveniencePayService

package com.zerobase.convpay.service;

public class ConveniencePayService {
    public void pay() {

    }

    public void payCancel() {

    }
}

MoneyAdapter

package com.zerobase.convpay.service;

public class MoneyAdapter {
    public void useMoney() {

    }

    public void useMoneyCancel() {

    }
}

payrequest

package com.zerobase.convpay.dto;

//내가 받아야 하는 데이터
public class PayRequest {
    //편의점 종류
    ConvenienceType convenienceType;
    //결제 금액
    Integer payAmount;

    public PayRequest(ConvenienceType convenienceType, Integer payAmount) {
        this.convenienceType = convenienceType;
        this.payAmount = payAmount;
    }

    public ConvenienceType getConvenienceType() {
        return convenienceType;
    }

    public void setConvenienceType(ConvenienceType convenienceType) {
        this.convenienceType = convenienceType;
    }

    public Integer getPayAmount() {
        return payAmount;
    }

    public void setPayAmount(Integer payAmount) {
        this.payAmount = payAmount;
    }
}

payResponse

package com.zerobase.convpay.dto;

//내가 반환할 데이터
public class PayResponse {
    //결제 결과
    PayResult payResult;

    //결제 성공금액
    Integer paidAmount;

    public PayResponse(PayResult payResult, Integer paidAmount) {
        this.payResult = payResult;
        this.paidAmount = paidAmount;
    }

    public PayResult getPayResult() {
        return payResult;
    }

    public void setPayResult(PayResult payResult) {
        this.payResult = payResult;
    }

    public Integer getPaidAmount() {
        return paidAmount;
    }

    public void setPaidAmount(Integer paidAmount) {
        this.paidAmount = paidAmount;
    }
}

ConvenieceType

package com.zerobase.convpay.dto;

public enum ConvenienceType {
    G25,
    GU,
    SEVEN
}

PayResult

package com.zerobase.convpay.dto;

public enum PayResult {
    SUCCESS,
    FAIL
}
profile
사람들을 돕는 문제 해결사, 개발자 sudong입니다. 반갑습니다. tkddlsqkr21@gmail.com

0개의 댓글