디자인 모델 학습 (간단 한 공장, 전략 모델, 단일 직책, 개폐 원칙)
3433 단어 디자인 모드대상 을 향 하 다C#
디자인 모델 과 원칙 적 인 장점 을 배우 면 코드 디자인 을 더욱 중용 성, 확장 성, 유지보수 성, 유연성 을 가지 게 할 수 있다.
'단순 공장 모델' 을 가장 먼저 알 게 됐다.
간단 한 공장 은 공장 류 의 방식 으로 필요 한 기능 류 대상 을 만 들 고 클 라 이언 트 류 에서 공장 류 의 생 성 대상 방법 을 호출 하면 수 요 를 실현 할 수 있다.
새로운 기능 수 요 를 추가 하려 면 새로운 기능 류 코드 를 작성 하고 공장 류 에 새로운 기능 가 지 를 추가 하 십시오.우리 초보 자 들 이 코드 를 처음 쓰 는 것 처럼 모든 기능 이 클 라 이언 트 에서 만 이 루어 지 는 것 이 아니 라 대상 을 대상 으로 하 는 정 수 를 전혀 이해 하지 못 했다.봉인, 계승, 다 태.
예 를 들 면:
어떤 기능 은 이 를 하나의 부모 클래스 로 추상 화하 고 하나의 기능 을 추가 하면 하나의 하위 클래스 를 써 서 계승 해 야 한다.자 류 에서 부류 의 공 유 를 실현 하 는 방법 은 다 태 를 나타 낸다.공장 클래스 를 다시 만 듭 니 다. 초보 자 는 switch 문 구 를 이용 하여 모든 기능 에 대응 하 는 케이스 문 구 를 사용 하여 관련 기능 류 의 대상 을 만 들 고 다시 쓰 거나 다시 불 러 오 는 방법 으로 기능 을 수행 할 수 있 습 니 다.
정수 코드:
public class Father
{
public virtual void GetResult();
}
public class Son1:Father
{
public override void GetResult()
{
Console.WriteLine("1");
}
}
public class Son2:Father
{
public override void GetResult()
{
Console.WriteLine("2");
}
}
public class SimpleFactory
{
public static void CreateSon(int sonNum)
{
Father f;
switch(sonNum){
case 1:f=new Son1();break;
case 2:f=new Son2();break;
}
}
}
static void Main()
{
Father fa=SimpleFactory.CreateSon(1);
fa.GetResult();
Console.Read();
}
두 번 째 는 이다.
전략 Strategy 모델 은 변 화 를 패키지 하고 다양한 전략 을 추상 화 합 니 다.클 라 이언 트 의 일상적인 변경 전략 은 소스 코드 에 큰 영향 을 미 치지 않 고 전략 대상 을 하나의 Context 류 에 밀봉 한다. 클 라 이언 트 는 이런 유형 만 식별 하고 간단 한 공장 모델 처럼 공장 류 를 이해 하지 않 아 도 된다.
abstract class Father
{
public abstract void GetResult();
}
public class Son1:Father
{
public override void GetResult()
{
Console.WriteLine("1");
}
}
public class Son2:Father
{
public override void GetResult()
{
Console.WriteLine("2");
}
}
public class SonContext
{
Father fa;
public SonContext(int sonNum)
{
switch(sonNum)
{
case 1:fa=new Son1();break;
case 2:fa=new Son2();break;
}
}
public void Get()
{
fa.GetResult();
}
}
static void Main()
{
SonContext sc=new SonContext(1);
sc.Get();
Console.Read();
대상 을 한층 더 봉인 하 다.전략 모드 는 일련의 알고리즘 을 정의 하 는 방법 이다.개념 적 으로 볼 때 모든 알고리즘 이 똑 같은 작업 을 완 성 했 습 니 다. 다만 서로 다른 방식 으로 모든 알고리즘 을 호출 하여 각종 알고리즘 류 와 사용 알고리즘 류 간 의 결합 을 줄 일 수 있 습 니 다.
전략 모델 은 패 키 징 알고리즘 에 사 용 됩 니 다. 실천 에서 거의 모든 유형의 규칙 을 패 키 징 할 수 있 습 니 다. 분석 과정 에서 서로 다른 업무 규칙 을 사용 하면 전략 모델 을 고려 할 수 있 습 니 다.기본 전략 모델 은 구체 적 인 실현 직책 을 클 라 이언 트 대상 이 맡 고 전략 모델 의 Context 대상 에 게 전달 하 는 것 을 선택한다.
단일 직책 원칙
각 종 류 는 하나의 변화, 즉 하나의 직책 에 대응 하 는 것 이다.하나의 직책 이 너무 많 고 코드 가 취약 해 지 며 결합 도가 커진다.직책 을 코드 디자인 의 중점 으로 분리 하지만 지나치게 추상 적 으로 해 서 는 안 된다.
개방 폐쇄 원칙
수정 을 닫 고 확장 을 엽 니 다.프로그램 이 필요 할 때 코드 를 확장 하기 만 하면 됩 니 다. 모든 코드 를 변경 하지 않 아 도 됩 니 다.가능 한 변 화 를 예측 하고 추상 적 인 격 리 변 화 를 구축 해 야 한다. 시기: 변화 가 발생 할 때 즉시 행동 을 취한 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
디자인 모델 의 공장 모델, 단일 모델자바 는 23 가지 디자인 모델 (프로 그래 밍 사상/프로 그래 밍 방식) 이 있 습 니 다. 공장 모드 하나의 공장 류 를 만들어 같은 인 터 페 이 스 를 실현 한 일부 종 류 를 인 스 턴 스 로 만 드 는 것...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.