C \ # 공장 모델 이 무엇 인지 약술
프롤로그
정의
설명 소개
코드 예시
장단 점 및 응용 장면
끝 말
머리말
디자인 모델 - 공장 모델 을 배우 고 간단 한 공장 모델 의 단점 을 해결 했다.
정의.
창설 대상 의 인 터 페 이 스 를 정의 하여 하위 클래스 가 어떤 공장 클래스 를 실례 화하 고 공장 모드 는 창설 과정 을 하위 클래스 로 지연 시 킵 니 다.
설명
우 리 는 그 완 다 백화점 을 예 로 들 었 다. 간단 한 공장 모델 에서 우 리 는 가게 가 우리 의 선택 중 하나 라 고 생각 하고 우 리 는 다른 측면 에서 생각 하고 있다.완 다 백화점 에서 처음에 가게 가 입 점 하지 않 았 을 때 시공 간 이 었 지만 많은 가게 의 위 치 를 남 겨 두 었 기 때문에 다른 사람 이 입 점 작업 을 해 야 했다.이 상태 에서 우 리 는 공장 모델 의 일종 의 실현 으로 이해 할 수 있다.여기 완 다 가 제공 하 는 가게 의 외관 은 우리 프로그램의 인터페이스 정보 에 해당 하 는데 이런 인 터 페 이 스 는 실현 되 지 않 았 을 뿐이다.구체 적 으로 그것 을 실현 하려 면 우 리 는 그 가게 들 이 입 점 하 는 것 을 보아 야 한다.
코드 예제
///
///
///
public abstract class WanDa
{
//
public abstract void Buy();
}
///
///
///
public class BuyFood : WanDa
{
public override void Buy()
{
Console.WriteLine(" ");
}
}
///
///
///
public class BuyClothes: WanDa
{
public override void Buy()
{
Console.WriteLine(" ");
}
}
///
/// -
///
public abstract class Creator
{
//
public abstract WanDa BuySomeThing();
}
///
/// -
///
public class BuyFoodFactory:Creator
{
///
/// /
///
///
public override Food BuySomeThing()
{
return new BuyFood();
}
}
///
/// -
///
public class BuyClothesFactory:Creator
{
///
///
///
///
public override Food BuySomeThing()
{
return new BuyClothes();
}
}
///
///
///
static void Main(string[] args)
{
// , ()
Creator buyFood = new BuyClothesFactory();
Creator buyClothes = new BuyClothesFactory();
//
WanDa food = buyFood.BuySomeThing();
food.Buy();
//
WanDa clothes= buyClothes.BuySomeThing();
clothes.Buy();
Console.Read();
}
, , , 。
: ,
( case )。 :
///
///
///
public class BuyFurniture : WanDa
{
///
///
///
public override void Buy()
{
Console.WriteLine(" ");
}
}
///
/// ,
///
public class BuyFurnitureFactory : Creator
{
///
///
///
///
public override Food BuySomeThing()
{
return new BuyFurniture ();
}
}
///
///
///
static void Main(string[] args)
{
// , ()
Creator buyFood = new BuyClothesFactory();
Creator buyClothes = new BuyClothesFactory();
Creator buyFurniture= new BuyFurnitureFactory();
//
WanDa food = buyFood.BuySomeThing();
food.Buy();
//
WanDa clothes= buyClothes.BuySomeThing();
clothes.Buy();
//
WanDa furniture= buyFurniture.BuySomeThing();
furniture.Buy();
Console.Read();
}
장단 점 및 응용 장면
장점: 공장 방법 모델 은 간단 한 공장 모델 의 단점 을 극복 하기 위해 설계 되 었 다.간단 한 공장 모델 의 공장 류 는 제품 류 의 증가 에 따라 많은 방법 (또는 코드) 을 증가 해 야 하 는데 공장 방법 모델 은 구체 적 인 공장 류 마다 단일 임무 만 완성 하고 코드 가 간결 하 다.공장 방법 모델 은 OCP 를 완전히 만족 시 킵 니 다. 즉, 아주 좋 은 확장 성 을 가지 고 있 습 니 다. 1. 호출 자 는 대상 을 만 들 고 싶 습 니 다. 그 이름 만 알 면 됩 니 다.2. 확장 성 이 높 습 니 다. 제품 하 나 를 추가 하려 면 공장 류 만 확장 하면 됩 니 다.3. 제품 의 구체 적 인 실현 을 차단 하고 호출 자 는 제품 의 인터페이스 에 만 관심 을 가진다.
단점: 한 제품 을 추가 할 때마다 구체 적 인 유형 과 대상 을 추가 하여 공장 을 실현 하여 시스템 중의 개 수 를 배로 증가 시 키 고 어느 정도 에 시스템 의 복잡 도 를 증가 하 는 동시에 시스템 의 구체 적 인 의존 도 를 증가 시 켰 다.
응용 장면: 1. 로그 기록 기: 로 컬 하 드 디스크, 시스템 이벤트, 원 격 서버 등에 기록 할 수 있 습 니 다. 사용 자 는 기록 로 그 를 어디 에 기록 할 지 선택 할 수 있 습 니 다.2. 데이터 베 이 스 를 방문 할 때 사용자 가 마지막 시스템 이 어떤 데이터 베 이 스 를 사용 하 는 지 모 르 고 데이터 베이스 가 변화 할 수 있 을 때.기다리다데이터 베 이 스 를 조정 하 는 데 자주 사용 되 는데 데이터 베 이 스 는 종류 가 비교적 많 고 회사 마다 선택 하 는 것 이 다 르 기 때문에 알 아 봐 야 한다.
뒷말
공장 모델 은 우리 프로젝트 에서 자주 사용 하 는 모델 이 라 고 할 수 있다. 주요 한 응용 장면 도 데이터 베 이 스 를 방문 하 는 곳 으로 데이터 베 이 스 를 동적 으로 전환 하 는 효 과 를 얻 을 수 있다.실제 응용 빈도 가 비교적 높 습 니 다. 전환 하지 않 아 도 예약 할 수 있 습 니 다. 후기 확장 (수 동 기지) 글 참고: C \ # 디자인 모델 (3) - 공장 방법 모델 공장 모델
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
디자인 모델 의 공장 모델, 단일 모델자바 는 23 가지 디자인 모델 (프로 그래 밍 사상/프로 그래 밍 방식) 이 있 습 니 다. 공장 모드 하나의 공장 류 를 만들어 같은 인 터 페 이 스 를 실현 한 일부 종 류 를 인 스 턴 스 로 만 드 는 것...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.