[Java] 회원 가입 코드 구현 (feat. interface, abstract)
java

[Java] 회원 가입 코드 구현 (feat. interface, abstract)

 

인터페이스, 추상 메소드 등을 활용해서 회원 가입, 회원 조회, 회원 수정, 회원 삭제 등의 아주 기본적인 CRUD를 구현한 자바 소스 코드입니다. 인터페이스와 추상 메소드를 공부하면서 구현을 한 번 해보고자 단순한 기능을 통해 가벼운 참고용으로 만들었습니다.

 

1. Main.java

public class Main {
    public static Boolean run = true;

    public static void main(String[] args) {
        while(run) {
            MemberServiceImpl memberService = new MemberServiceImpl();
            memberService.init();
        }
    }
}

 

2. MemberService.java

public interface MemberService {
    abstract void init();
    abstract void insertMember();
    abstract void updateMember();
    abstract void deleteMember();
    abstract void showAll();
    abstract Member findById(String id);
}

 

3. MemberServiceImpl.java

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class MemberServiceImpl implements MemberService {

    private static final Scanner sc = new Scanner(System.in);
    private static final List<Member> memberList = new ArrayList<>();

    @Override
    public void init() {
        System.out.print("[1] Insert Member\n" +
                "[2] Update Member\n" +
                "[3] Delete Member\n" +
                "[4] Show All\n" +
                "[0] EXIT\n" +
                ">> ");
        String menu = sc.nextLine();

        if (menu.equals("1")) insertMember();
        else if (menu.equals("2")) updateMember();
        else if (menu.equals("3")) deleteMember();
        else if (menu.equals("4")) showAll();
        else if (menu.equals("0")) System.exit(0);
    }

    @Override
    public void insertMember() {
        System.out.print("id? ");
        String id = sc.nextLine();
        System.out.print("pwd? ");
        String pwd = sc.nextLine();
        System.out.print("email? ");
        String email = sc.nextLine();
        Member member = new Member(id, pwd, email);
        memberList.add(member);
        System.out.println(member.getId() + "가 생성되었습니다.");
    }

    @Override
    public void updateMember() {
        System.out.print("id? ");
        String id = sc.nextLine();
        if (findById(id) == null) {
            System.out.println("존재하지 않는 아이디입니다.");
        } else {
            System.out.print("email? ");
            String email = sc.nextLine();
            findById(id).setEmail(email);
        }
    }

    @Override
    public void deleteMember() {
        System.out.print("id? ");
        String id = sc.nextLine();
        if (findById(id) == null) {
            System.out.println("존재하지 않는 아이디입니다.");
        } else {
            memberList.remove(findById(id));
        }
    }

    @Override
    public void showAll() {
        for (Member member : memberList) {
            System.out.println(member.toString());
        }
    }

    @Override
    public Member findById(String id) {
        for (Member i : memberList) {
            if (i.getId().equals(id)) {
                return i;
            }
        }
        return null;
    }
}

 

4. Member.java

public class Member {
    private String id;
    private String password;
    private String email;

    public Member(String id, String password, String email) {
        this.id = id;
        this.password = password;
        this.email = email;
    }

    @Override
    public String toString() {
        return "Member{" +
                "id='" + id + '\'' +
                ", email='" + email + '\'' +
                '}';
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}