Наследование Vs Состав.
Наследования и состав используются для повторного использования и расширения поведения класса.
Наследование в основном используется в модели программирования алгоритмов семейства, такой как тип отношения IS-A, означает аналогичный объект. Пример.
. Они принадлежат семейству Car.
Композиция представляет собой отношение HAS-A Type.It показывает способность объекта, такого как Duster, иметь Five Gears, Safari имеет четыре Gears и т. д. Всякий раз, когда нам нужно расширить способность существующего класса, используйте композицию. Например, нам нужно добавить еще одна передача в объекте Duster, тогда мы должны создать еще один объект передачи и скомпоновать его объекту duster.
Мы не должны вносить изменения в базовый класс до тех пор, пока все производные классы не нуждаются в этих функциях. Для этого сценария мы должны использовать Composition.Such как
класс A Производится классом B
Класс A Производится классом C
Класс A Производится классом D.
Когда мы добавляем какие-либо функциональные возможности в класс А, тогда он доступен для всех подклассов, даже если классам C и D не требуются эти функции. Для этого сценария нам необходимо создать отдельный класс для этих функций и составить это к требуемому классу (вот класс B).
Ниже приведен пример:
// This is a base class
public abstract class Car
{
//Define prototype
public abstract void color();
public void Gear() {
Console.WriteLine("Car has a four Gear");
}
}
// Here is the use of inheritence
// This Desire class have four gears.
// But we need to add one more gear that is Neutral gear.
public class Desire : Car
{
Neutral obj = null;
public Desire()
{
// Here we are incorporating neutral gear(It is the use of composition).
// Now this class would have five gear.
obj = new Neutral();
obj.NeutralGear();
}
public override void color()
{
Console.WriteLine("This is a white color car");
}
}
// This Safari class have four gears and it is not required the neutral
// gear and hence we don't need to compose here.
public class Safari :Car{
public Safari()
{ }
public override void color()
{
Console.WriteLine("This is a red color car");
}
}
// This class represents the neutral gear and it would be used as a composition.
public class Neutral {
public void NeutralGear() {
Console.WriteLine("This is a Neutral Gear");
}
}
проблема заключается в этой части кода:
file = request.files['image']
, когда произошла ошибка, когда какой-либо файл выбирает для загрузки. затем я изменил код:
if 'image' in request.files:
file = request.files['image']
я оштрафовал его с здесь