특정 기준에 따라 다양한 프랜차이즈에 대한 수수료 구조를 구현해야합니다. 나는 등 다양한 구조에 대한팩토리 메서드 디자인 패턴을 구현하는 올바른 방법이
public class ST1 extends FranchiseFeeStructure{
@Override
void getMonthlyFee(){
monthlyFee=890;
}
}
과 ST2, ST3과 같은 FranchiseFeeStructure를 확장 클래스를 만들어 지금은 다른 구조에 대한 FranchiseFeeStructure
public abstract class FranchiseFeeStructure {
private BigDecimal registrationFee=1500;
protected BigDecimal monthlyFee;
public BigDecimal getMonthlyFees(){
return monthlyFee;
}
public BigDecimal calculateFee{
//calculate fee here
return fee;
}
}
추상 클래스를 만든다. 정적 팩토리 메소드를 가지는 클래스가 있습니다.
public class GetFeeStructureFactory {
public static FranchiseFeeStructure getFranchiseFeeStructure(String franchiseFeeStructureType){
if(franchiseFeeStructureType == null){
return null;
}
if(franchiseFeeStructureType.equalsIgnoreCase("ST1")) {
return new ST1();
}
else if(franchiseFeeStructureType.equalsIgnoreCase("ST2")){
/// so on...
}
}
지금
FranchiseFeeStructure franchiseFeeStructure = GetFeeStructureFactory.getFranchiseFeeStructure("ST1");
franchiseFeeStructure.getMonthlyFee();
franchiseFeeStructure.calculateFee();
이 방법 공장 패턴을 구현하는 올바른 방법인가로 사용합니다. 내가 잘못했거나 더 나아질 제안이 있다면 말해주십시오.
감사 Nizet을 돕기 위해 노력할 것입니다, 난 정말 당신의 응답을 주셔서 감사합니다. 오프 코스, 나는 추상적 인 방법으로 getMonthlyFee를 만들어야한다. – vinaybhatoa
하지만 생성자 인수로 매월 요금을 내리는 마지막 줄로 이해할 수 없습니다. 월간 수수료가 다른 경우 수수료가 다르다. 구조체 – vinaybhatoa
그러나 모든 서브 클래스에 대해 월별 요금이 일정하다면 간단히 FranchiseFreeStructure를 추상화하지 않고 'new FranchiseFreeStructure (890) 반환'또는 '새 FranchiseFreeStructure (122) 반환' 구조체 유형. 단순히 값을 변경하는 하위 클래스가 필요하지 않습니다. 하위 클래스는 동작을 변경하는 데 유용합니다. 즉, 다른 논리를 제공하는 것입니다. 당신이 말했듯이 –