Тип столбца самоанализа SQLAlchemy с наследованием

Единственная причина - «не обязательно», поэтому зачем ее поддерживать?

Синтаксически нет оснований запрещать внутреннему классу создавать статические элементы. Хотя экземпляр Inner связан с экземпляром Outer, по-прежнему можно использовать Outer.Inner.myStatic для ссылки на статический член Inner, если java решает это сделать.

Если вы нужно поделиться чем-то среди всех экземпляров Inner, вы можете просто поместить их в Outer как статические члены. Это не хуже, чем вы используете статические члены в Inner, где Outer все равно может получить доступ к любому частному члену Inner в любом случае (не улучшает инкапсуляцию).

Если вам нужно поделиться чем-то среди все экземпляры Inner, созданные одним объектом outer, имеют смысл помещать их в класс Outer как обычные члены.

Я не согласен с мнением о том, что «статический вложенный класс - это всего лишь класс высшего уровня ». Я считаю, что лучше всего рассматривать статический вложенный класс / внутренний класс как часть внешнего класса, потому что они могут обращаться к закрытым членам внешнего класса. А члены внешнего класса также являются «членами внутреннего класса». Поэтому нет необходимости поддерживать статический член во внутреннем классе. Обычный / статический член во внешнем классе будет достаточным.

13
задан tonio 25 July 2012 в 00:59
поделиться