public class Person { private IMovestrategy movestrategy; private IJumpstrategy jumpstrategy; int d; //์ด๋™ํ•  ๊ฑฐ๋ฆฌ public Person(IMovestrategy movestrategy, IJumpstrategy jumpstrategy,int dis) { this.movestrategy = movestrategy; this.jumpstrategy = jumpstrategy; this.d = dis; } public void Move() { movestrategy.Move(d); } public void Jump() { jumpstrategy.Jump(); } } public interface IMovestrategy { public void Move(int a); } public class Moving_normal: IMovestrategy { public void Move(int a) { Debug.Log("๋ณธ์ธ์„"+a+"๋งŒํผ ์ด๋™์‹œํ‚ฌ ๋กœ์ง"); //์—ฌ๊ธฐ์— ๋Œ€์ƒ ๊ฐ์ฒด๋ฅผ ์›€์ง์ด๊ฒŒํ•˜๋Š” ๋กœ์ง์„ ๋„ฃ๊ณ  ์‹ถ์Œ } }


์›€์ง์ด๊ฒŒํ•˜๊ณ  ์‹ถ์€ ๊ฐ์ฒด

public class Person_exe:MonoBehaviour { Person p = new Person(new Moving_normal(),new Jump_normal(),3); void Start() { p.Move(); p.Jump(); } }

์—ฌ๊ธฐ๊นŒ์ง„ ์งœ๋ดค์Šต๋‹ˆ๋‹ค. ์ด์ œย Person_exe๋ฅผ ๊ฐ–๋‹ค๋ถ™ํžŒ ๊ฒŒ์ž„์˜ค๋ธŒ์ ํŠธ์˜ย ์ •๋ณด๋ฅผ Person์œผ๋กœ ๋„˜๊ฒจ์ฃผ๊ณ ย Move์—์„œ ํŠธ๋žœ์Šคํผ์ด๋™์ด๋ผ๋˜์ง€, ๋ฌผ๋ฆฌ์ด๋™์ด๋ผ๋˜์ง€ ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์€๋ฐย ์•„๋ฌด๋ฆฌ ์งฑ๊ตฌ๋ฅผ ๊ตด๋ ค๋„ ๊ฒŒ์ž„์˜ค๋ธŒ์ ํŠธ์˜ย ์ •๋ณด๋ฅผ Person์œผ๋กœ ๋„˜๊ฒจ์ค„ ๋ฐฉ๋ฒ•์ด ์•ˆ๋– ์˜ค๋ฆ…๋‹ˆ๋‹ค.. ๊ตฌ์กฐ์ ์œผ๋กœ ๋ถˆ๊ฐ€๋Šฅํ•œ๊ฐ€์š”? ๋งŒ์•ฝ ๊ทธ๋ ‡๋‹ค๋ฉด ์–ด๋–ค ๋ฐฉ๋ฒ•์„ ์จ์•ผํ•˜๋Š”์ง€ ์•Œ๋ ค์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค ใ… ใ… ..