'Game > Game Jam' 카테고리의 다른 글
[Unity 게임잼] 시즌3 Round1 준우승 임동환 (1) | 2015.09.15 |
---|---|
[Unity 게임잼] 시즌3 Round1 우승 최요섭 (1) | 2015.09.15 |
[Unity 게임잼] 시즌2 준우승 서원희 (1) | 2015.08.13 |
[Unity 게임잼] 시즌2 우승 송재영 (1) | 2015.08.03 |
[Unity 게임잼] 시즌1 준우승 이진혁 (0) | 2015.08.03 |
[Unity 게임잼] 시즌3 Round1 준우승 임동환 (1) | 2015.09.15 |
---|---|
[Unity 게임잼] 시즌3 Round1 우승 최요섭 (1) | 2015.09.15 |
[Unity 게임잼] 시즌2 준우승 서원희 (1) | 2015.08.13 |
[Unity 게임잼] 시즌2 우승 송재영 (1) | 2015.08.03 |
[Unity 게임잼] 시즌1 준우승 이진혁 (0) | 2015.08.03 |
예제 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CSharp_StrategyPattern { abstract class Strategy { public abstract void AlgorithmInterface(); } class ConcreteStrategyA : Strategy { public override void AlgorithmInterface() { Console.WriteLine( "Called ConcreteStrategyA.AlgorithmInterface()"); } } class ConcreteStrategyB : Strategy { public override void AlgorithmInterface() { Console.WriteLine( "Called ConcreteStrategyB.AlgorithmInterface()"); } } class ConcreteStrategyC : Strategy { public override void AlgorithmInterface() { Console.WriteLine( "Called ConcreteStrategyC.AlgorithmInterface()"); } } class Context { private Strategy _strategy; public Context(Strategy strategy) { this._strategy = strategy; } public void ContextInterface() { _strategy.AlgorithmInterface(); } } class Program { static void Main(string[] args) { Context context; context = new Context(new ConcreteStrategyA()); context.ContextInterface(); context = new Context(new ConcreteStrategyB()); context.ContextInterface(); context = new Context(new ConcreteStrategyC()); context.ContextInterface(); Console.ReadKey(); } } } | cs |
[C# 디자인패턴] 제16강 옵저버 패턴 (0) | 2015.07.27 |
---|---|
[C# 디자인패턴] 제15강 미디에이터 패턴 (0) | 2015.07.24 |
[C# 디자인패턴] 제14강 이터레이터(반복자) 패턴 (0) | 2015.07.23 |
[C# 디자인패턴] 제13강 커맨드패턴 (0) | 2015.07.22 |
[C# 디자인패턴] 제12강 프록시 패턴 (0) | 2015.07.21 |
예제 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CSharp_ObserverPattern { abstract class Observer { public abstract void Update(); } class ConcreteObserver : Observer { private string _name; private string _observerState; private ConcreteSubject _subject; public ConcreteObserver(ConcreteSubject subject, string name) { this._subject = subject; this._name = name; } public override void Update() { _observerState = _subject.SubjectState; Console.WriteLine("Observer {0}'s new state is {1}", _name, _observerState); } public ConcreteSubject Subject { get; set; } } abstract class Subject { private List<Observer> _observers = new List<Observer>(); public void Attach(Observer observer) { _observers.Add(observer); } public void Detach(Observer observer) { _observers.Remove(observer); } public void Notify() { foreach (Observer o in _observers) { o.Update(); } } } class ConcreteSubject : Subject { public string SubjectState { get; set; } } class Program { static void Main(string[] args) { ConcreteSubject s = new ConcreteSubject(); s.Attach(new ConcreteObserver(s, "X")); s.Attach(new ConcreteObserver(s, "Y")); s.Attach(new ConcreteObserver(s, "Z")); s.SubjectState = "ABC"; s.Notify(); Console.ReadKey(); } } } | cs |
[C# 디자인패턴] 제17강 전략 패턴 (0) | 2015.07.28 |
---|---|
[C# 디자인패턴] 제15강 미디에이터 패턴 (0) | 2015.07.24 |
[C# 디자인패턴] 제14강 이터레이터(반복자) 패턴 (0) | 2015.07.23 |
[C# 디자인패턴] 제13강 커맨드패턴 (0) | 2015.07.22 |
[C# 디자인패턴] 제12강 프록시 패턴 (0) | 2015.07.21 |