Вопросы с тегом 'abstract-base-class'

В ООП (объектно-ориентированное программирование) - базовый класс, который не может быть создан, поскольку некоторые из его объявленных методов не имеют определения, которое предполагается предоставлять производными классами. Этот термин может иметь более конкретное или немного другое значение в соответствии с конкретным компьютерным языком.
6
ответов

Абстракция против интерфейса - разделение определения и реализации в Delphi

Каков наилучший подход для разделения определения и реализации с использованием интерфейсов или абстрактных классов? На самом деле мне не нравится смешивать ссылки на подсчитанные объекты с другими объектами. Я полагаю, что это может стать кошмаром ...
задан 17 февр. '10 в 10:52
2
ответов

Может ли базовый класс Python Abstract Base подписывать функции?

Предположим, что я определяю абстрактный базовый класс следующим образом: from abc import abstractmethod, ABCMeta class Quacker(object): __metaclass__ = ABCMeta @abstractmethod def quack(self): return "Quack!" Это гарантирует, что любо...
задан 07 авг. '14 в 16:09
8
ответов

Абстрактный базовый класс против класса бетона в виде супертипа

После прочтения самой прекрасной книги "Head First Design Patterns" я начал прозелитизировать моим коллегам преимущества шаблонов и принципов дизайна. Превознося достоинства моей любимой картины - Strategy Pattern - мне задали вопрос, который дал мне...
задан 28 июня '10 в 20:45
3
ответов

С++ Вызов конструктора копирования на неизвестном производном классе через абстрактный базовый класс

Я создаю дерево, имеющее несколько разных типов node: двоичный node, унарный node и терминал node. У меня есть ABC, из которого наследуются все узлы. Я пытаюсь написать рекурсивный конструктор копии для дерева следующим образом: class gpnode { publ...
задан 27 окт. '11 в 10:46
1
ответ

Исключение исключений на основе их абстрактного базового класса

Предположим, что у меня есть класс исключения с абстрактным базовым классом, примерно так: class MyExceptions(BaseExeption, metaclass=abc.ABCMeta): pass class ProperSubclass(MyExceptions): pass MyExceptions.register(ValueError) Похоже, ч...
задан 27 мая '14 в 16:24
2
ответов

Способный создавать экземпляр класса python, несмотря на то, что он является абстрактным (с использованием abc)

Это касается ответа на этот вопрос на "Использовать abc-модуль python для создания абстрактных классов". (by @alexvassel и принято как ответ). Я пробовал предложения, но, как ни странно, несмотря на то, что я использовал способ abc, это не работает...
задан 16 июня '14 в 2:48
3
ответов

Реализовать две функции с тем же именем, но разные, не ковариантные типы возврата из-за множества абстрактных базовых классов

Если у меня есть два абстрактных класса, определяющих чистую виртуальную функцию с тем же именем, но разные, не ковариантные типы возврата, как я могу извлечь из них и определить реализацию для обеих своих функций? #include <iostream> class I...
задан 07 июля '12 в 6:09
1
ответ

Scala: Trait Mixin с абстрактным базовым классом

У меня есть абстрактный базовый класс (Base), который имеет определенные для него признаки стекирования (StackingTrait). trait Base { def foo } trait StackingTrait extends Base { abstract override def foo { super.foo } } Было бы очень удобно р...
задан 05 янв. '13 в 10:08
2
ответов

Абоненты Python: регистрация или подклассы

(я использую python 2.7) Документация python указывает, что вы можете передать сопоставление в встроенный dict и скопировать это сопоставление в новый dict: http://docs.python.org/library/stdtypes.html#mapping-types-dict У меня есть класс, который...
задан 03 авг. '10 в 1:39
1
ответ

Измените модель на наследование из абстрактного базового класса без изменения БД

У меня есть простая модель для продукта, которая выглядит так: class Product(models.Model): name = models.CharField(max_length=80) # other attributes У нас уже есть это свернутое, и у нас есть БД с этими полями. Я хочу изменить эту модель ...
задан 26 июня '13 в 23:12
2
ответов

Общий абстрактный базовый класс для синглтонов (С#) - не может создать экземпляр частного Lazy

В настоящее время я имею коллекцию из 6 или 7 синглтонов, все из которых делают почти то же самое (см. метод For в приведенном ниже примере), но с другим внутренним запросом БД и возвратом коллекции различных объектов (так разбор результатов БД разл...
задан 07 авг. '14 в 13:24
1
ответ

У нас есть лучший способ вернуть абстрактные классы в С++?

Я хочу начать бросать некоторые интерфейсы в свой код на С++, чтобы облегчить мне использование unit test с помощью mocks. Проблема с этим возвратом абстрактных классов из метода в С++ - это боль. Вы не можете вернуть значение, поэтому вам нужно ве...
задан 17 марта '16 в 19:36
6
ответов

Как объявить член в базовом шаблоне, где тип зависит от производного класса?

Учитывая базовый класс с использованием CRTP, я рассматриваю объявление члена в базовом шаблоне, где тип зависит от производного класса. В то время как следующее работает по назначению: template <class T> class BaseTraits; template <class ...
задан 10 дек. '17 в 23:52
1
ответ

Возвращаемое значение @staticmethod

В Python 3.6 я пытался определить свойство в AbstractBaseClass; моя первая попытка была чем-то вроде этого (позже я обнаружил, что могу опустить @staticmethod): class AnAbstractClass(ABC): @property @staticmethod @abstractmethod def...
задан 14 мая '18 в 16:31
0
ответов

Использование абстрактного базового класса VS простого наследования

Я пытаюсь понять преимущества использования абстрактных базовых классов. Рассмотрим эти два фрагмента кода: Абстрактный базовый класс: from abc import ABCMeta, abstractmethod, abstractproperty class CanFly: __metaclass__ = ABCMeta @abstra...
задан 17 марта '14 в 10:59