Я создал множественное наследование с помощью динамической отправки c. Это слишком сложный способ реализации sh свойств системы массовой настройки. В сущности, вам нужна возможность интегрировать обработку из нескольких модулей. Производственная архитектура позволяет контейнеру бесконечно расти - эти термины взяты из бизнеса - двумя способами:
- Вертикально: расширение процесса (вместо создания подклассов)
- Горизонтально : добавление новых процессов (вместо того, чтобы создавать подклассы или наследовать для этого)
Другая проблема множественного наследования состоит в том, что он вносит неоднозначность. Неясно, какой метод должен вызываться при наследовании обоих классов.
class A
{
public void One() { ... }
}
class B
{
public void One() { ... }
}
Производственная архитектура, такая как массовая настройка, однако моделирует процессы как целые классы, а не просто методы, и поэтому вышеупомянутая проблема предотвращается пространствами имен .
namespace A
{
class OneProduct { ... }
class One : Producer<OneProduct>, IProcess { ... }
}
namespace B
{
class OneProduct { ... }
class One : Producer<OneProduct>, IProcess { ... }
}
// example of a hardcoded process
namespace IntegratingProcess
{
class MyProduct { ... }
class MyProcess : Producer<OneProduct>, IProcess
{
private A.One Machine1 { get; set; }
private B.One Machine2 { get; set; }
void D() { // allocate memory for all machines and product DTO }
void O() { // binds Machine1 and Machine2 to MyProduct reference properties }
void M()
{
Machine1.M();
Machine2.M();
}
}
}
Массовая настройка позволяет динамически интегрировать обработку и изменять порядок запуска. Это, конечно, альтернатива жестко закодированной форме, описанной выше, где производственный процесс и порядок его запуска строятся во время компиляции. Моя статья на R посвящена массовой настройке, но я не даю исходный код для нее.
Я являюсь разработчиком POWER, производственной архитектуры и правил для ее эффективного использования. Мои статьи учат программистов, как правильно моделировать совместную работу с исходным кодом.
http://www.powersemantics.com/power.html