▶ 뭉충닷컴
 
mungchung.com login
Site Search
My Space
주절주절...
공부방
쥔장소개
Board
자유게시판
유용한 정보
자료실
Programming
강좌 & Articles
Spring 3.0
프로그래밍 Tip
   -ASP
   -PHP
   -JavaScript
   -HTML
   -Java/JSP
   -Database
   -Crystal Report
   -Visual Basic
   -이클립스
   -리눅스
   -기타
Windows API (VB)
Spread Sheet 7.0
컴퓨터활용 Tip
Other things
StarCraft 전략
StarCraft 문서
김용(金庸)
Son Q & Dieda

C# Pattern - Simple Pattern

기타 조회 수 6235 추천 수 0 2004.03.17 20:43:45
뭉충닷컴 *.154.199.102
Simple Pattern..가장 간단한 패턴 예제인데도. 한번보고 쉽게 이해를 못했다.
이 패턴의 가장 큰 특징은 어떤 같은 처리를 하는 메서드들이 여러개 있다면 이 메서드들을 처리하는 클래스를 하나 만드는 것이다.

아래 예제를 보면 알것지만...스타에는 일반형, 공격형, 진동형 의 데미지들이 있는데 이 공격형태에 따른 데미지를 어떤 클래스(여기선 DamageFactory)로 만들어서 처리했다.

이렇게 같은 행위를 하는 메서드들을 Factory 에 묶어 버려서 사용한다면 나중에 재사용하기 편리하다..




병화한테 전화와서 나감~ 휘리릭



아래 예제는 책보면서 나름대로 스타의 공격형에 관한 부분을 패턴화 시켜본 부분이다.

개인적으로 만든 허접한 예제니 보지 말것 -_-;

public class DamageFactory {
        public DamageFactory() {}
        public Damage getDamage(string unit, int damage) {
                switch(unit) {
                        case "marine" :
                                return new NormalDamage(damage);
                        case "firebat" :
                                return new VibrationDamage(damage);
                        case "vulture" :
                                return new VibrationDamage(damage);
                        case "tank" :
                                return new ExplosionDamage(damage);
                        default :
                                return new NormalDamage(damage);
                }
        }
}
public class Damage {
        protected int norDamage;        // normal damage
        protected int vibDamage;        // vibration damage
        protected int expDamage;        // explosion damage
        public int getNorDamage() {
                return norDamage;
        }
        public int getVibDamage() {
                return vibDamage;
        }
        public int getExpDamage() {
                return expDamage;
        }
}
public class NormalDamage : Damage {
        public NormalDamage(int damage) {
                norDamage = damage;
        }
}
public class VibrationDamage : Damage {
        public VibrationDamage(int damage) {
                vibDamage = damage + 10;
        }
}
public class ExplosionDamage : Damage {
        public ExplosionDamage(int damage) {
                expDamage = damage + 20;
        }
}




한빛미디어에 있던 예제

참조 URL : http://network.hanbitbook.co.kr/view_news.htm?serial=626

// project created on 2004-03-18 at 오전 12:16
#define WINDOWS
using System;

namespace Mona.DesingPattern
{
        class Tester
        {
                [STAThread]
                public static void Main(string[] args)
                {
                        #if WINDOWS
                                OperationSystem os = new Windows();
                        #elif LINUX
                                OperationSystem os = new Linux();
                        #endif
                        
                        os.Disk();
                        Console.WriteLine("npress any key to end...");
                        Console.Read();
                }
        }
        public abstract class OperationSystem
        {
                public abstract void Disk();
        }
        public class Linux : OperationSystem
        {
                public override void Disk()
                {
                        Console.WriteLine( this.ToString() + ".Disk()" );
                }
        }
        public class Windows : OperationSystem
        {
                public override void Disk()
                {
                        Console.WriteLine( this.ToString() + ".Disk()" );
                }
        }
}
문서 첨부 제한 : 0Byte/ 2.00MB
파일 크기 제한 : 2.00MB (허용 확장자 : *.*)
List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 기타 공부하는 곳 -_-; [2] 뭉충닷컴 2002-09-22 10645
31 토비의 스프링 뭉충닷컴 2011-03-28 3913
30 웹사이트 최적화 기법 file [1] 뭉충닷컴 2009-08-10 7224
29 기타 아파치 튜닝 [1] 뭉충닷컴 2009-08-03 7848
28 기타 아파치 설정 httpd.conf 뭉충닷컴 2009-08-03 5371
27 Intercepting Filter 패턴 뭉충닷컴 2009-06-17 7068
26 Core J2EE Pattern file 뭉충닷컴 2009-06-16 6547
25 기타 [C++ Study] Timer 사용 [3] 뭉충닷컴 2004-06-29 8548
24 기타 [C++ Study] Click Count, Toggle, Move String 뭉충닷컴 2004-06-29 7361
23 기타 [C++ Study] WinMain와 WinProc 뭉충닷컴 2004-06-28 8732
» 기타 C# Pattern - Simple Pattern 뭉충닷컴 2004-03-17 6235
21 기타 1. abex3 크랙 설명서 뭉충닷컴 2004-03-12 7012
20 기타 어셈 강좌 1, 2장 정리 뭉충닷컴 2004-03-12 7702
19 기타 SoftICE 4.05 설치 & 간단한 사용법 뭉충닷컴 2004-03-12 9116
18 기타 5. Overloading, Overriding, Runtime Type and 객체지향 뭉충닷컴 2003-12-02 6486
17 기타 4. Flow 통제와 예외 처리(Exception Handling) 뭉충닷컴 2003-11-05 6006
16 기타 3. 연산자와 지정 뭉충닷컴 2003-11-03 6626
15 기타 2. 선언과 엑서스 제어 뭉충닷컴 2003-11-03 5916
14 기타 1. 자바언어의 기본 뭉충닷컴 2003-11-03 5802
13 기타 Parameter 을 asp 처럼 사용하게 만든 class 뭉충닷컴 2003-11-03 6678