public class ClassA{
public void process(){
ServiceA sa = new ServiceA();
ServiceA sb = new ServiceB();
}
}
장점: 개발자가 OOP에 대한 설계 개념이 부족해도 이해하고 활용 가능한 구조입니다.
단점: 팀 작업을 할 때 표준화가 어렵다. 개발자가 제각각 개발 패턴을 이용함으로 관리상에 많은 비용이 발생합니다.
ICompany coma = new CompanyA();
ICompany comb = new CompanyB();
장점: 개발자가 표준적인 API를 사용하게 됨으로 프로젝트의 규모가 커져도 관리상에 편리함이 발생한다.
팀 작업이 가능하다. 인터페이스는 구현하지 않으면 에러가 발생함으로 모든 개발자가 같은 패턴을 사용하게 됩니다.
관리 비용이 적게 들어갑니다.
단점: 개발자가 OOP를 알아야함, 객체 디자인 패턴에 대한 지식이 있어야 함, 개발 경험이 있어야 사용이 편리해짐.
빈(객체)을 개발자가 직접 생성하여 사용하는 문제는 존재함.
public Object makeProcess(String code){
Object obj = null;
if (code.equals("A01"){
obj = new A01();
}else if (code.equals("B01"){
obj = new B01();
}else{
obj = new A02();
}
return obj;
}