C # вложенные классы, очистка декларации - PullRequest
0 голосов
/ 04 октября 2010

Есть ли способ в C # привести в порядок следующее объявление класса?

namespace Application.Namespace
{
    public class MasterClass
    {
        public class FlyingSaucer
        {
            public class Rotator
            {
                public class Cube
                {

Все еще поддерживая структуру класса, просто очистив объявление.

Ответы [ 3 ]

2 голосов
/ 04 октября 2010

Нет - это уже довольно аккуратно, учитывая, что у вас есть 4 уровня вложенности.

Но вы почти наверняка не должны иметь 4 уровня вложенности для начала. Почему вы хотите это сделать? У вас есть класс с именем subClass1, который не является подклассом с обычным значением (то есть производным от другого конкретного класса; subClass1 является производным только от object.)

Классы вложения довольно редки - я не думаю, что когда-либо видел даже три уровня вложенности, не говоря уже о четырех. Почему вы думаете, что это хорошая идея?

1 голос
/ 04 октября 2010

Есть ли какая-либо связь между

FlyingSaucer -> Rotator -> Cube, я думаю, что это типичный пример сдерживания.

FlyingSaucer содержит ротатор и ротатор содержит куб.

, поэтому в этом случае вы можете рассмотреть возможность использования Composition путем создания свойств Rotator и Cube в FlyingSaucer.

Вы можете внедрить эти зависимости при создании объекта FlyingSaucer.Это удалит очень глубокое вложение в ваших классах, и я думаю, вам, вероятно, потребуется доступ к объектам FlyingSaucer, Rotator, Cube из вашего мастер-класса.

, так что используйте Composition здесь, это действительно сделает вашу иерархию классов проще и проще для расширения и поддержки.

0 голосов
/ 04 октября 2010

похоже, что вы путаете наследование с подклассами.

подклассы обычно довольно редки.

...