글 작성자: 취업중인 피터팬
728x90
기본 환경
JDK : 1.8.0_261 버전
JRE : 1.8.0_261 버전
JAVA VERSION : 8 업데이트 261
Eclipse IDE VERSION : 2020-06버전

 

목표

캡슐화에 대해 이해한다.


 

 

코드
package ex10accessmodifier;

/*
 캡슐화(Encapsulation){
 		: 여러가지 비즈니스 로직을 하나로 묶는다는 의미와 
 		업무의 순서까지 고려한 형태의 로직을 구성한다는 의미를
 		가지고 있다.
 		즉, 관련있는 메소드를 하나의 클래스로 묶는것을 말한다.
 */

class MemberRegist{
	void doMenberRegist() {
		System.out.println("1. 회원가입을 진행합나다.");
	}
}

class CongratulationPoint{
	void doCongratulationPoint() {
		System.out.println("3. 가입축하 10포인트를 지급합니다.");
	}
}

class AutoLogin{
	void doAutoLogin() {
		System.out.println("2.자동로그인");
	}
}

class FirstLoginEvent{
	void doFirstLoginEvent() {
		System.out.println("4. 척 로그인 이밴트 페이지로 이동합니다.");
	}
}

/*
 업무의 순서를 고려하여 관련된 메소드를 하나의 클래스로 정의하였다.
 자후에는 별도의 분석없이 해당 클래스의 메소드만 호출하면 
 업무는 오류없이 진행될 것이다.
 */
class EncapsulLogic{
	MemberRegist memberRegist = new MemberRegist();
	FirstLoginEvent firstLoginEvent = new FirstLoginEvent();
	AutoLogin autoLogin = new AutoLogin();
	CongratulationPoint congratulationPoint = new CongratulationPoint();
	
	void doProcess() {
		memberRegist.doMenberRegist();
		autoLogin.doAutoLogin();
		congratulationPoint.doCongratulationPoint();
		firstLoginEvent.doFirstLoginEvent();
	}
	
}


//아래 4가지 없무는 번호순서대로 진행되어야 한다고 가정한다.
public class E05Encapsulation {

	public static void main(String[] args) {
		/*
		 업무의 진행순서가 중요하다고 했을 때 캡슐화 이전의 코드에서는
		 개발자가 순서를 지키지 않는 상태에서도 실행이 가능한 코드가 된다.
		 */
		
		System.out.println("캡슐화 전 코드");
		MemberRegist memberRegist = new MemberRegist();
		FirstLoginEvent firstLoginEvent = new FirstLoginEvent();
		AutoLogin autoLogin = new AutoLogin();
		CongratulationPoint congratulationPoint = new CongratulationPoint();
		
		memberRegist.doMenberRegist();
		firstLoginEvent.doFirstLoginEvent();
		congratulationPoint.doCongratulationPoint();
		autoLogin.doAutoLogin();
		
		System.out.println("==================================");
		
		System.out.println("캡슐화 이후 코드");
		new EncapsulLogic().doProcess();
		
	}

}

 

캡슐화라고 해서 뭔가 어려운거 같지만 코드를 보면 전혀 어려운 내용이 아닙니다.(물론 뭐든 깊게 배우면 어렵겠지만요..) 여러가지 순서로 처리해야 할 내용을 하나의 메소드를 묶어 한번에 처리할 수 있도록 하는 것 그로 인해서 업무효율과 실수를 줄이는 것을 캡슐화 라고 합니다.

 

 

결과 값