단순 공장 과 단일 설계 모델 에 대한 얕 은 해석

8806 단어
디자인 모델 이 뭐 예요?
우 리 는 손자 병법 이 행군 전쟁 전술의 서적 이라는 것 을 안다.좋 은 전술 이 있어 야만 군대의 기 존 전투력 을 최대 화 할 수 있다.그리고 우리 가 코드 를 작성 하 는 것 도 '전술' 이 필요 합 니 다. 적당 한 전술 을 사용 하면 인 코딩 의 효율 과 프로그램의 성능 을 크게 향상 시 킬 수 있 고 쓴 코드 도 매우 보기 좋 을 것 입 니 다!디자인 모델 은 바로 우리 의 손자 병법 이다!
단순 공장
간단 한 공장 은 쉽게 말 하면 우리 가 공장 류 에 파 라 메 터 를 전달 하 는 정태 적 인 방법 으로 우리 가 원 하 는 유형의 대상 을 얻 는 것 이다.
예 를 들 어 우 리 는 피자 류 베이컨 피자 와 크림 피 자 를 모두 피자 류 에 계승 하면 피자 공장 류 가 이런 정태 적 인 방법 에 사용 할 피자 의 종 류 를 매개 변수 에서 출입 하 는 방법 내부 에서 피자 의 유형 을 판단 하고 방법 에 대한 호출 자 를 정의 할 수 있다.
메모: 방법 은 정적 입 니 다. 반환 값 유형 은 피자 류 입 니 다. 매개 변 수 를 통 해 피자 라 고 판단 합 니 다!
demo:
 1 //   
 2 public abstract class Piza
 3     {
 4         public  string name;
 5         public abstract void  show();
 6 
 7     }
 8 //  
 9    public  class nailaopiza:Piza
10     {
11        public override void show()
12        {
13            Console.WriteLine("    ");
14        }
15     }
16 //  
17     public class peigenpiza:Piza
18     {
19 
20         public override void show()
21         {
22             Console.WriteLine("    ");
23         }
24     }
25 
26     //   
27    public  class pizagongchang
28     {
29        public static Piza CreatePiza(string type)
30        {
31            Piza  piza= null;
32            switch (type)
33            {
34                case "  ":
35                    piza = new nailaopiza();//       36                    break;
37                case "  ":
38                    piza = new peigenpiza();//       39                    break;
40                default:
41                    break;
42            }
43            return piza;//        44        }
45     }

 
단일 모드
단일 모드 에서 한 클래스 를 가 려 면 한 개체 만 있 을 수 있 습 니 다.
단일 디자인 모델 을 몇 단계 로 나 누 어 완성 하 다.
  • 클래스 에 표 시 된 개인 구 조 를 정의 합 니 다.
  • 개인, 정적 인 이 유형의 변 수 를 정의 합 니 다
  • 공 통 된 정적 방법 을 정의 하여 두 번 째 단계 에서 정 의 된 정적 변 수 를 되 돌려 줍 니 다. 방법 내부 에서 정적 변수 가 null 인지 여 부 를 판단 하고 null 이 라면 이 변 수 를 예시 화 한 다음 에 되 돌려 줍 니 다. 반대로 직접 되 돌려 줍 니 다.

  • demo:
    namespace     
    {
       public class text
       {
           private text() { }//      
           private static text t;//
           public static text createtext() 
           {
               if (t==null)
               {
                   t = new text();//  t null          t
               }
               return t;// t      
           }
    
        }
    }

    좋은 웹페이지 즐겨찾기