Где подписаться на события внутреннего объекта?

Я часто сталкиваюсь с ситуацией, когда я должен решить, где подписаться на события внутреннего объекта?

Например, у меня объектная модель выглядит так:

class ClassA
{
    public event EventHandler SomeEvent1;
    public event EventHandler SomeEvent2;
    public event EventHandler SomeEvent3;
    public event EventHandler SomeEvent4;
}

class ClassB
{
    private ClassA a;
    public ClassA A 
    {
        get
        {
            return this.a;
        }
    }

    public ClassB()
    {
        this.a = new ClassA();
        // here subscribe to some events (for example, SomeEvent1 and SomeEvent2)
        // this.a.SomeEvent1 += OnSomeEvent1Raised;
        // this.a.SomeEvent2 += OnSomeEvent2Raised;
    }
}

class ClassC
{
    public ClassB B { get; }
}

class ClassD
{
    public ClassC C { get; }

    public void SomeMethod()
    {
        // Here subscribe to another ones events of object C.B.A. For example:
        C.B.A.SomeEvent3 += OnSomeEvent3Raised;
        C.B.A.SomeEvent4 += OnSomeEvent4Raised;
    }

    private void OnSomeEvent4Raised(object sender, EventArgs e)
    {
        throw new NotImplementedException();
    }

    private void OnSomeEvent3Raised(object sender, EventArgs e)
    {
        throw new NotImplementedException();
    }
}

мы пытались создать что-то вроде диаграммы UML:

Структура существующего кода моего проекта имеет места, где существует такая объектная модель (есть места, где подписка на события реализована, как в примере выше - C.B.A.SomeEvent + =). Я неМне это нравится, и я хочу это изменить. Я хочу здесь от вас лучшие практики об этой ситуации.

Альтернативный подход заключается в дублировании всех событий класса A в classB, classC, classD. А затем заменить все подписки на событияОДНО МЕСТО (Я имею в виду, что в классе B мы будем подписываться / отписываться на все события объекта ClassA. В классе C мы будем подписываться / отписываться на все события объекта класса B. И так далее ...) В этом случае все подписки и отписки будут в одном месте. Надеюсь, вы понимаете, что я имею в виду здесь.

Опять же, пожалуйста, положитесь на свои знания и опыт, и мы расскажем, как решить эту ситуацию.

ОБНОВИТЬ

Согласны ли вы со мной, что подписки и отписки на события должны быть размещены в одном месте? Пожалуйста, ответьте и на этот дополнительный вопрос.

Заранее спасибо.

Ответы на вопрос(3)

Ваш ответ на вопрос