프로젝트 에 따라 디자인 모델 (3): 공장 모델
2475 단어 디자인 모드프로젝트 에 따라 디자인 모델 을 배우다.
일부 새로 추 가 된 모듈 은 새로운 인터페이스 가 필요 합 니 다. 예 를 들 어 계산서 모듈 을 추가 하고 보고 서 를 만 드 는 인터페이스 가 필요 합 니 다. 이 때문에 IProduct 에 이 새로운 인 터 페 이 스 를 추가 해 야 합 니 다. 간단 한 공장 에서 인터페이스 IProduct 에 대한 수정 은 치 명 적 입 니 다. IProduc 를 수정 하 는 것 은 모든 제품 류 를 수정 하 는 것 을 의미 하기 때 문 입 니 다. 모든 제품 류 가 IProduc 인 터 페 이 스 를 실현 하기 때 문 입 니 다.다른 모듈 에 빈 방법 을 추가 해 야 합 니 다.이런 방식 은 분명히 용납 할 수 없 는 것 이다.
우 리 는 적어도 개폐 원칙 을 만족 시 킬 수 있 는 디자인 모델 로 우리 의 유 고 를 재 구성 해 야 한다. 그것 이 바로 공장 모델 이다.
이것 은 이전의 제품 인터페이스 이다.
public interface IProduct
{
bool Add(BaseEntity entity);
bool Del(string id);
bool Edit(string id);
bool Select(string id);
IList GetEntitys();
IList GetEntitys(int pageIndex,int pageSize,out int totalCount);
}
우 리 는 제품 을 모듈 (UserDal, GoodsDal, History Dal) 에 따라 분류 합 니 다. 지금 우 리 는 세 개의 인터페이스 파일 이 있 습 니 다. 수요 에 따라 서로 다른 방법 을 포함 합 니 다. 예 를 들 어 로 그 는 추가 와 조회 만 필요 하고 상품 은 삭제 하고 페이지 별로 검사 해 야 합 니 다.
public interface IUserDal
{
bool Add(BaseEntity entity);
bool Del(string id);
bool Edit(string id);
bool Select(string id);
IList GetEntitys();
}
public interface IGoodsDal
{
bool Add(BaseEntity entity);
bool Del(string id);
bool Edit(string id);
bool Select(string id);
IList GetEntitys(int pageIndex, int pageSize, out int totalCount);
}
public interface IHistoryDal
{
bool Add(BaseEntity entity);
IList GetEntitys(int pageIndex, int pageSize, out int totalCount);
}
각자 의 제품 류 는 자신의 인터페이스 만 실현 하면 됩 니 다. 개폐 원칙 에 부합 되 고 새로운 모듈 을 추가 하 며 예전 의 모듈 을 수정 할 필요 가 없습니다.현재 의 곤경 을 완벽 하 게 해결 했다.
간단 한 공장 은 공장 류 호출 매개 변 수 를 알 아야 한다. 간단 한 공장 은 하나의 제품 인터페이스 만 있 고 제품 인터페이스 와 제품 은 1 대 다 의 관계 이기 때문에 하나의 공장 류 만 있 으 면 모든 대상 을 얻 을 수 있다.공장 모델 은 1 대 1 의 관계 이기 때문에 이곳 의 제품 인 터 페 이 스 는 매개 변수 이자 공장 이다.
매개 변수 로 삼 으 면 각 제품 에 공장 을 추가 해 야 하고 사이트 에서 각 공장 의 이름 을 알 아야 호출 할 수 있 습 니 다.
공장 이 라 고 생각하면 주입 에 의존 하 는 것 이 있 지 않 습 니까? 대상 은 IOC 에 등록 되 어 있 습 니 다. 사이트 쪽 에서 각 인터페이스의 이름 을 알 아야 호출 할 수 있 습 니 다.IOC 를 사용 하 세 요. 코드 양 을 많이 절약 할 수 있 습 니 다.좋 은 디자인 인 것 같은 데.
시행 을 시작 한 후 새로운 수요, 라 이브 러 리 이쪽 은 곧 개발 이 끝 났 지만 개발 진 도 는 한때 사이트 개발 쪽 에 걸 렸 다.
계속
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
디자인 모델 의 공장 모델, 단일 모델자바 는 23 가지 디자인 모델 (프로 그래 밍 사상/프로 그래 밍 방식) 이 있 습 니 다. 공장 모드 하나의 공장 류 를 만들어 같은 인 터 페 이 스 를 실현 한 일부 종 류 를 인 스 턴 스 로 만 드 는 것...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.