|
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
С нами:
10386906
Репутация:
599
|
|
horlyk
ну это простое правило нужно и можно усвоить и без книг. Если ты делаешь класс - снабди его ровно тем поведением, которое будет ожидать от него человек, увидев имя класса. Вот ты делал список - я ожидал там видеть управление данными. Никаких меню. Ожидал что работать буду так
List list1;
list1.add(name, age);
list1.add(name2, age2);
list1.remove(name1);
list1.sort();
единственный метод, который можно добавить ради простоты - метод view. Хотя на самом деле делается это введением доп класса или снабжением списка например итераторами.
Чтобы понять в общем смысле суть представь, что ты купил машину. Но чтобы на ней ехать тебе надо открыть капот, впрыснуть в карбюратор немного бензина, залезть в кпп и добавить шестеренки, отрегулировать дифференциал... Суть - скрыть ВСЕ, что мешает абстракции. Нажал кнопочку - все сделалось само. Сработал стартер, в карбюратор бензин, искра - завелись. Как на самом деле все это работает - тебя не трогает. Плюс делать вещь должна ровно то, о чем говорит название. Врядли ты обрадуешься, если машина помимо езды еще и мусор собирает, и селедку возит. МОжет конечно это тебе и пригодится, но это лишняя сложность. Или называй машину как селедковоз с мусоросборкой, чтобы знать, чего ожидать, или разбей все фичи на отдельные устройства. Так же в программах =)
Очень простой признак говняности кода - слишком длинные приготовления для работы с классом. В твоем примере это создание Node'ов при любом действии со списком. Логичнее же все повторяющиеся места пихнуть в класс и оставить только вызов метода.
У тебя это не так очевидно ибо список, как уже упоминалось выше, делает помимо управления списком и весь клиентский код
|