▶ 뭉충닷컴
 
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

기타 조회 수 6246 추천 수 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 10664

토비의 스프링

웹사이트 최적화 기법 file [1]

기타 아파치 튜닝 [1]

기타 아파치 설정 httpd.conf

Intercepting Filter 패턴

Core J2EE Pattern file

기타 [C++ Study] Timer 사용 [3]

기타 [C++ Study] Click Count, Toggle, Move String

기타 [C++ Study] WinMain와 WinProc

기타 C# Pattern - Simple Pattern

기타 1. abex3 크랙 설명서

기타 어셈 강좌 1, 2장 정리

기타 SoftICE 4.05 설치 & 간단한 사용법

기타 5. Overloading, Overriding, Runtime Type and 객체지향

기타 4. Flow 통제와 예외 처리(Exception Handling)

기타 3. 연산자와 지정

기타 2. 선언과 엑서스 제어

기타 1. 자바언어의 기본

기타 Parameter 을 asp 처럼 사용하게 만든 class