[Spring Core Basic] 2.スプリングコアの原理1-作成例について
💻プロジェクトの作成
プロジェクトの準備
スプリングプロジェクトを作成するには、スプリングイニシエータサイトに移動します。
https://start.spring.io/
注意:プロジェクト環境の設定を容易にするために、スプリングガイドが使用されています.現在はスプリングのない純Javaのみを開発し,スプリングを使用している.
📃ビジネスニーズと設計
👨👩👧👦メンバードメイン
メンバードメイン設計
メンバードメインのコラボレーション
会員等級図
メンバー・オブジェクトのグラフ
メンバードメインの開発
メンバーエンティティ
public enum Grade {
BASIC,
VIP
}
public class Member {
private Long id;
private String name;
private Grade grade;
public Member(Long id, String name, Grade grade) {
this.id = id;
this.name = name;
this.grade = grade;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Grade getGrade() {
return grade;
}
public void setGrade(Grade grade) {
this.grade = grade;
}
}
会員庫
public interface MemberRepository {
void save(Member member);
Member findById(Long memberId);
}
public class MemoryMemberRepository implements MemberRepository{
private static Map<Long, Member> store = new HashMap<>();
@Override
public void save(Member member) {
store.put(member.getId(), member);
}
@Override
public Member findById(Long memberId) {
return store.get(memberId);
}
}
会員サービス
public interface MemberService {
void join(Member member);
Member findMember(Long memberID);
}
public class MemberServiceImpl implements MemberService{
private final MemberRepository memberRepository = new MemoryMemberRepository();
@Override
public void join(Member member) {
memberRepository.save(member);
}
@Override
public Member findMember(Long memberID) {
return memberRepository.findById(memberID);
}
}
メンバードメインのテスト(JUnit)
会員ドメイン-会員加入テスト
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.Test;
public class MemberServiceTest {
MemberService memberService = new MemberServiceImpl();
@Test
void join(){
//given
Member member = new Member(1L, "memberA", Grade.VIP);
//when
memberService.join(member);
Member findMember = memberService.findMember(1L);
//then
Assertions.assertThat(member).isEqualTo(findMember);
}
}
メンバードメイン設計における問題💲注文および割引ドメイン
オーダーと割引ドメインの設計
受注コラボレーション、ロール、責任関係
オーダークラス図
受注オブジェクト図1
注文対象図2
Reference
この問題について([Spring Core Basic] 2.スプリングコアの原理1-作成例について), 我々は、より多くの情報をここで見つけました https://velog.io/@zion/Spring-Core-Basic-2.스프링-핵심-원리-이해1-예제-만들기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol