Шаблонный метод С# - C#
Формулировка задачи:
Добрый день, у меня есть абстрактный класс BaseGame, он имеет базовую реализацию некоторого метода, который необходимо использовать в классах наследниках в неизменном виде(паттерн шаблонный метод). Но например если я хочу расширить функциональность классов наследников, то мне стоит добавлять эту функциональность через новый интерфейс IPremiumGame? Но вроде бы то получится уже не будет шаблонным методом. Можно ли так поступать?
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication22 { class Program { static void Main(string[] args) { BaseGame BG = new SlowGame(); BG.StartGame(); BG = new MediuGame(); BG.StartGame(); QuickGame BG1 = new QuickGame(); BG1.StartGame(); BG1.PremiumStartGame(); } } public interface IGame { void StartGame(); } public interface IPremiumGame { void PremiumStartGame(); } public abstract class BaseGame : IGame { public virtual void StartGame() { Console.WriteLine("Start Game"); } } public class QuickGame : BaseGame,IPremiumGame { public override void StartGame() { base.StartGame(); Console.WriteLine("Quick Game"); } public void PremiumStartGame() { Console.WriteLine("Premium Game"); } } public class SlowGame : BaseGame { public override void StartGame() { base.StartGame(); Console.WriteLine("Slow Game"); } } public class MediuGame : BaseGame { public override void StartGame() { base.StartGame(); Console.WriteLine("Medium Game"); } } }
Решение задачи: «Шаблонный метод С#»
textual
Листинг программы
public class QuickGame : BaseGame,IPremiumGame
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д