Порождающие паттерны - C#
Формулировка задачи:
Здравствуйте
Теории по паттернам полно а вот реальных практических примеров найти трудно .
Не сочтите за труд скиньте ссылку или какую информацию о порождающих паттернах == исходники или что то в этом роде желательно на C# == чтобы увидеть
в реальности их работу и возможности . Теория хорошо а практика лучше . Тем более посмотреть на их применение
глазами других программистов .
За ранее спасибо .
Решение задачи: «Порождающие паттерны»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; class Program { static void Main(string[] args) { Hero elf = new Hero(new ElfFactory()); elf.Hit(); elf.Run(); Hero voin = new Hero(new VoinFactory()); voin.Hit(); voin.Run(); Console.ReadLine(); } } //абстрактный класс - оружие abstract class Weapon { public abstract void Hit(); } // абстрактный класс движение abstract class Movement { public abstract void Move(); } // класс арбалет class Arbalet : Weapon { public override void Hit() { Console.WriteLine("Стреляем из арбалета"); } } // класс меч class Sword : Weapon { public override void Hit() { Console.WriteLine("Бьем мечом"); } } // движение полета class FlyMovement : Movement { public override void Move() { Console.WriteLine("Летим"); } } // движение - бег class RunMovement : Movement { public override void Move() { Console.WriteLine("Бежим"); } } // класс абстрактной фабрики abstract class HeroFactory { public abstract Movement CreateMovement(); public abstract Weapon CreateWeapon(); } // Фабрика создания летящего героя с арбалетом class ElfFactory : HeroFactory { public override Movement CreateMovement() { return new FlyMovement(); } public override Weapon CreateWeapon() { return new Arbalet(); } } // Фабрика создания бегущего героя с мечом class VoinFactory : HeroFactory { public override Movement CreateMovement() { return new RunMovement(); } public override Weapon CreateWeapon() { return new Sword(); } } // клиент - сам супергерой class Hero { private Weapon weapon; private Movement movement; public Hero(HeroFactory factory) { weapon = factory.CreateWeapon(); movement = factory.CreateMovement(); } public void Run() { movement.Move(); } public void Hit() { weapon.Hit(); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д