2022.08.29
/* 접근 제한자(Access modifier)
2. abstract
- 추상
3. final
4. synchronized*/// model.domain
public class People {
// 멤버 변수
String name;
int age;
// 기본생성자 : 사용자 정의 생성자가 있는 경우에는 반드시 개발자가 지정!!!
People() {}
// 사용자 정의 생성자 : 객체 생성 시, 초기화
People(String name, int age) {
this.name = name;
this.age = age;
}
// 메소드
String getName() {
return name;
}
int getAge() {
return age;
}
void setAge(int age) {
if (age > 0) {
this.age = age;
}else {
System.out.println("지정한 나이로 update 할수 없음");
}
}
}
/* 도메인 모델(Domain Model)
package step02;
import model.domain.People;
public class Ex06Practice {
// Q1.
/* 매개변수로 들어오는 값을 비교하여 같을 경우 true를 반환하는 메소드 개발 - 메소드명 : checkAdmin / 반환값 :
* boolean / static
* 개발 후 실행결과 확인
* step01 -> Condition의 if문 활용하여 메소드 개발
* -> 메소드명은 checkAdmin, 입력 id값이 admin1 or admin2일 때 "관리자 접속 성공" 문자열 출력
* -> 실패 시 "관리자 접속 실패" 문자열 출력
*/
// Q2.
/* 매개변수로 들어오는 값 비교하여 월(~4월까지만) 확인 메소드 개발 - 함수명 : checkMonth / 반환값 없음 / static
* step01 -> Condition의 switch / case문 활용하여 메소드 개발
*/
static void checkMonth(int month) {
switch (month) {
case 1:
System.out.println(month + "월 입니다.");
break;
case 2:
System.out.println(month + "월 입니다.");
break;
case 3:
System.out.println(month + "월 입니다.");
break;
case 4:
System.out.println(month + "월 입니다.");
break;
default:
System.out.println("잘못된 값입니다.");
break;
}
}
static People[] peopleArray() {
People p1 = new People("Java", 26);
People p2 = new People("IT", 29);
People[] v = {p1, p2};
return v;
}
//Q3. printPeopleName 메소드 개발
/* printPeopleName(People[] v){} - 배열 내부의 모든 사람 이름 출력 - name 변수는 직접적인 접근 불가 :
* private - getName() 호출 가능 : public - for문 활용하여 출력 - 호출만으로 이름 출력할 것
*/
static void printPeopleName(People[] people) {
// for(int i = 0; i < people.length; i++) {
// System.out.println(people[i].getName());
// }
for(People person : people) {
System.out.println(person.getName());
}
}
public static void main(String[] args) {
String id = "admin3";
checkAdmin(id);
int month = 2;
checkMonth(month);
People[] v = peopleArray();
printPeopleName(v);
}
}
/ 싱글톤 패턴(Singleton Pattern)
- 하나의 객체만 만들어서 내부적인 메소드 혹은 정보를 사용하는 경우
- 자원 절약 가능
프린터 드라이버
여러 컴퓨터에서 프린터 한대를 공유하는 경우
하나를 끝내고 다음 작업을 하는 것이 아닌 동시에 섞여 나오면 안될 것임.
Singleton 패턴: 여러 클라이언트(컴퓨터)가 동일 객체(공유 프린터)를 사용하지만 한 개의 객체(프린트 명령을 받은 출력물)가
유일하도록 상위 객체가 보장하도록 하는 것
동일한 자원이나 데이터를 처리하는 객체가 불필요하게 여러 개 만들어질 필요가 없는 경우에 주로 사용
/
[학습]
1. MVC 패턴
- https://www.oracle.com/technical-resources/articles/javase/mvc.html
- 어플리케이션을 계층별로 구분 하는 패턴
- 구조
- M Model : 핵심 로직
- V View : 출력 로직
- C Controller : View와 Model 연결 로직