VO를 구현하자!
//Customer.java - VO
public class Customer implements Serializable{
private String id;
private String password;
private String name;
private String email;
private String phoneNumber;
private int mileage;
public Customer() {
super();
}
public Customer(String id, String password, String name, String phoneNumber,
String email, int mileage) {
super();
this.id = id;
this.password = password;
this.name = name;
this.email = email;
this.phoneNumber = phoneNumber;
this.mileage = mileage;
}
public void setId(String id) {
this.id = id;
}
public String getId() {
return id;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
public int getMileage() {
return mileage;
}
public void setMileage(int mileage) {
this.mileage = mileage;
}
@Override
public String toString() {
return "Customer [id=" + id + ", password=" + password + ", name="
+ name + ", email=" + email + ", phoneNumber=" + phoneNumber
+ ",\tmileage=" + mileage + "]";
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((email == null) ? 0 : email.hashCode());
result = prime * result + ((id == null) ? 0 : id.hashCode());
result = prime * result + mileage;
result = prime * result + ((name == null) ? 0 : name.hashCode());
result = prime * result
+ ((password == null) ? 0 : password.hashCode());
result = prime * result
+ ((phoneNumber == null) ? 0 : phoneNumber.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Customer other = (Customer) obj;
if (email == null) {
if (other.email != null)
return false;
} else if (!email.equals(other.email))
return false;
if (id == null) {
if (other.id != null)
return false;
} else if (!id.equals(other.id))
return false;
if (mileage != other.mileage)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
if (password == null) {
if (other.password != null)
return false;
} else if (!password.equals(other.password))
return false;
if (phoneNumber == null) {
if (other.phoneNumber != null)
return false;
} else if (!phoneNumber.equals(other.phoneNumber))
return false;
return true;
}
}
지원해줄 인터페이스를 만들어 놓자!!
//Service.java - 인터페이스
public interface Service {
public void registerCustomer(Customer customer);
public void printCustomerList();
public Customer findCustomerById(String id);
public ArrayList findCustomerByName(String name);
public ArrayList findCustomerByMileageRange(int startMileage,
int endMileage);
public void updateCustomerInfo(Customer changeInfo);
public void removeCustomerById(String id);
}
이것이 Business Service이다!!
//CustomerSerivceMap.java
public class CustomerSerivceMap implements Service{
//어떤게 리스트가 편하고, key가 편한지 체크해 볼것!!
private HashMap customerMap;
public CustomerSerivceMap(){
customerMap = new HashMap();
}
public CustomerSerivceMap(int listSize){
customerMap = new HashMap(listSize);
}
@Override
public void registerCustomer(Customer customer) {
// TODO Auto-generated method stub
Customer custom = findCustomerById(customer.getId());
if(custom==null)
{
customerMap.put(customer.getId(), customer);
}
}
//엔트리로 처리하는 구문 암기하기.
@Override
public void printCustomerList() {
// TODO Auto-generated method stub
Set entrys = customerMap.entrySet();
for(Object o :entrys){
Entry entry = (Entry) o;
System.out.println(entry.getKey()+" : "+entry.getValue());
}
}
@Override
public Customer findCustomerById(String id) {
// TODO Auto-generated method stub
Customer customer = null;
boolean flag = false;
flag = customerMap.containsKey(id);
if (!flag) {
}
else {
customer = (Customer) customerMap.get(id);
}
return customer;
}
@Override
public ArrayList findCustomerByName(String name) {
// TODO Auto-generated method stub
ArrayList customerList = new ArrayList();
for (Object o : customerMap.values()) {
if (((Customer) o).getName().equals(name)) {
customerList.add(o);
}
}
return customerList;
}
@Override
public ArrayList findCustomerByMileageRange(int startMileage, int endMileage) {
// TODO Auto-generated method stub
ArrayList customerList = new ArrayList();
for (Object o : customerMap.values()){
if (startMileage<= ((Customer) o).getMileage() && ((Customer) o).getMileage() <=endMileage)
{
customerList.add(o);
}
}
return customerList;
}
@Override
public void updateCustomerInfo(Customer changeInfo) {
// TODO Auto-generated method stub
if(changeInfo.getId()==null || !customerMap.containsKey(changeInfo.getId()))
return;
else
{
customerMap.put(changeInfo.getId(), changeInfo);
}
}
@Override
public void removeCustomerById(String id) {
// TODO Auto-generated method stub
if(id==null || !customerMap.containsKey(id))
return;
customerMap.remove(findCustomerById(id));
}
}
메인 클래스입니다!
//CustomerMapMain.java - Main
public class CustomerMapMain {
public static void main(String[] args) {
CustomerSerivceMap service = new CustomerSerivceMap();
//등록할 고객 정보
Customer c1 = new Customer("id-1", "1111","김영수", "02-111-2222", "kys@kosta.or.kr", 40000);
Customer c2 = new Customer("id-2", "4444","이미영", "031-222-3333", "lmy@kosta.or.kr", 5500);
Customer c3 = new Customer("id-3", "2222","최우수", "010-555-1212","cws@kosta.or.kr", 350000);
Customer c4 = new Customer("id-4", "3333","이미영", "010-3434-5656", "lmy@kosta.or.kr", 2700);
Customer c5 = new Customer("id-5", "5555","이미영", "031-532-6421", "Rmy@kosta.or.kr",550);
Customer c6 = new Customer("id-6", "6666","장경수", "010-9011-3222", "cks@kosta.or.kr", 66000);
Customer c7 = new Customer("id-7", "7777","홍길범", "010-5434-6533", "hkb@kosta.or.kr", 57000);
// --------------------------------------------------------등록
service.registerCustomer(c1);
service.registerCustomer(c2);
service.registerCustomer(c3);
service.registerCustomer(c4);
service.registerCustomer(c5);
service.registerCustomer(c6);
service.registerCustomer(c7);
// -----------------------------------------------------전체 고객 정보 출력
service.printCustomerList();
// -----------------------------------------------------ID로 고객 조회
String findId = "id-2";
Customer cc = service.findCustomerById(findId);
if(cc==null){
System.out.println(findId+"는 없는 고객입니다.");
}else{
System.out.println("찾은 고객의 정보 : "+cc);
}
//--------------------------------------------------이름으로 조회
String name = "이미영";
System.out.println("----"+name+" 고객 정보-----");
ArrayList list = service.findCustomerByName(name);
if(list==null||list.size()==0){//고객을 못찾은 경우
System.out.println(name+"는 없는 고객 - main()");
}else{
printList(list);
}
// ----------------------------------------------------마일리지 범위로 조회
int sMileage = 1000;
int eMileage = 20000;
System.out.println("마일리지 범위로 체크 ("+sMileage+"~"+eMileage+")");
list = service.findCustomerByMileageRange(sMileage, eMileage);
if(list==null||list.size()==0){//고객을 못찾은 경우
System.out.println("마일리지 범위내에 고객이 없습니다. - main()");
}else{
printList(list);
}
// -------------------------------------------------------고객 정보 수정 수정
System.out.println("-------------------------수정-----------------------");
Customer custom1 = new Customer("id-2", "1111","최우수", "010-555-1212","new@kosta.or.kr", 300000);
service.updateCustomerInfo(custom1);
service.printCustomerList();
// --------------------------------------------------------고객 id로 고객정보 제거
System.out.println("------------------삭제-------------------");
service.removeCustomerById("id-5");
service.printCustomerList();
}
public static void printList(ArrayList list){
for(int idx = 0; idx < list.size(); idx++){
System.out.println(list.get(idx));
}
}
}
반응형
'JAVA > Syntax' 카테고리의 다른 글
| 가변인수 (String... args) JDK1.5 (0) | 2015.02.06 |
|---|---|
| DataType & Type Casting (Primitive Type) (0) | 2015.02.06 |
| 접근제한자 (Access Modfiier) (0) | 2015.02.06 |
| java.util.Date && java,util.GregorianCalendar (0) | 2015.02.05 |
| Collection API [Collection - ( Set,List, Map ) (0) | 2015.02.05 |