Я играю с шаблонами дизайна, и на данный момент я работаю с шаблоном прототипа. Модель заставила меня задаться вопросом, зачем мне нужен интерфейс для этого шаблона, не могу ли я достичь такой же функциональности без интерфейса?Prototype Pattern, зачем мне нужен интерфейс?
Я создал два примера, может ли кто-нибудь объяснить мне, зачем мне нужен интерфейс? Пример
Интерфейс:
Это мой интерфейс класса:
interface IWeapon
{
IWeapon Clone();
}
Мой конкретный класс:
class Rifle : IWeapon
{
public IWeapon Clone()
{
return (IWeapon)this.MemberwiseClone();
}
}
Процесс клонирования
//Create rifle
Rifle rifle = new Rifle();
rifle.Name = "M4A1";
rifle.Rounds = 30;
//Copy Rifle
Rifle rifleCopy = (Rifle)rifle.Clone();
Это, как я клонировать withou t a интерфейс
public Rifle Clone()
{
return (Rifle)this.MemberwiseClone();
}
Может ли кто-нибудь объяснить мне преимущества использования реализации с интерфейсом над интерфейсом без интерфейса?
У вас есть точка сложности. Я создал свои интерфейсы очень мало, но когда они мне нужны, они были неоценимы. – DonBoitnott
Создание интерфейсов для всего требует определенного типа дизайна. Если что-то хорошо компоненты, то создание интерфейсов компонентов позволяет очень адаптируемую, проверяемую кодовую базу. Но это нужно делать хорошо. Даже тогда вам все равно может не понадобиться * все *, чтобы иметь интерфейс, но при разработке с таким подходом вы, скорее всего, окажетесь довольно много. – Magus
+1 для перехода к ядерному – Bit