выходит за пределы ширины страницы
Ну, во-первых, вы, вероятно, должны определиться с шириной страницы и придерживаться ее.Используйте автоматическую переноску строк из вашего редактора, если хотите.Чтение кода, который больше размера вашего окна, действительно затруднительно, особенно для ваших коллег, использующих vi или emacs из терминалов.Выберите ширину страницы и придерживайтесь ее - это означает, что эти списки инициализаторов обертывают в несколько (возможно, много) строк.
Вы пытаетесь разбить такие классы?
20 параметров очень много, наверное, заслуживает того, чтобы их разбить.«Классы Бога», как правило, являются запахом кода и указывают на необходимость рефакторинга.
Это не означает автоматически, что вы должны разбить вещи, всегда есть исключения из руководящих принципов.Но, определенно рассмотрите это как вариант.
Когда вы объявляете их в заголовочном файле, вы (или не могли бы) сгруппировать их с комментариями?Например: // These next few parameters are for file IO
и // These next parameters are for the widget
, которые предоставят вам хороший шаблон, для которого объекты абстрагируются.
В целом, действительно большие классы указывают на большое сложное состояние, а сложное состояние имеет тенденцию вызыватьошибок.Вы должны, как и в случае с функциями, предпочитать, чтобы они были небольшими и целенаправленными.
{Ваш пример кода}
Я думаю, что он достаточно читабелен и "аккуратен", хотя список, вероятно, будет довольно длинным.Как я уже упоминал, для борьбы с этим я хотел бы разбить его на более мелкие классы.