캡슐화 알고리즘
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace DesignPytternDemo { /// <summary> /// 策略模式 /// </summary> public abstract class BaseStategy { public virtual int GetTicketPrice(int price) { return price; } } public class CommonPersonStrategy : BaseStategy { public override int GetTicketPrice(int price) { return base.GetTicketPrice(price); } } public class StudentStrategy : BaseStategy { public override int GetTicketPrice(int price) { return price / 2; } } public class Context { private BaseStategy _context; public Context(string personType) { switch (personType) { case "c": _context = new CommonPersonStrategy(); break; case "s": _context = new StudentStrategy(); break; default: break; } } public int GetTicketPrice(int price) { return this._context.GetTicketPrice(price); } } }
위 내용은 C# 디자인 패턴의 Strategy Pattern 예시 내용이며, 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php)를 참고해주세요. .cn)!