Я занимаюсь разработкой приложения на Java, которое управляет базой данных банковских кредитов.
У меня есть некоторый опыт в разработке приложений, и у меня есть вопрос, который может быть глупым, но об этом я всегда говорю, так как я изучал разработку языков и никогда не получал убедительного ответа.
В моей программе есть много классов и методов, которые я использую в качестве универсальных инструментов. Например, у меня есть класс для записи в Excel, класс для чтения / записи файлов, класс, который обрабатывает строки различными способами, класс для отображения диалогов / сообщений в моем формате по умолчанию, класс для конкретных математических функций (например, Математика) и др.
Я не могу представить эти классы как настоящие вещи (как и предполагалось для классов / объектов), но они приходят мне в голову как наборы инструментов. Вот почему я делаю их статичными. Таким образом я пишу, например,
excelWriter.create("C:\temp.xls");
excelWriter.append("mydata1\tmydata2\nmydata3\tmydata4");
excelWriter.close();
вместо
ExcelWriter myExcelWriter;
myExcelWriter.create("C:\temp.xls");
myExcelWriter.append("mydata1\tmydata2\nmydata3\tmydata4");
myExcelWriter.close();
Это подходит мне больше по той причине, что я считаю набор инструментов чем-то, что всегда для меня, и мне не нужно создавать объект каждый раз, когда я хочу его использовать. Разве математика C ++ не такая же, как и статическая?
Я обсуждал это со многими моими коллегами и друзьями-программистами, и большинство из них говорят, что я должен создать объект, потому что именно в этом и заключается объектно-ориентированное программирование.
Я понимаю, что они сказали в другом контексте:
В свободное время я занимаюсь разработкой карточной игры с использованием VB.net. Там у меня были занятия по игре, игроку, колоде, руке. Объекты, которые я сделал, есть много в каждом классе, потому что у меня много игр, игроков, колод, рук. И их можно представить как реальные вещи. Это особенно сильно отличается, когда вы разрабатываете игру. Разработка игры гораздо более объектно-ориентирована, поскольку содержит реальные вещи .
Мне было интересно, я как-то здесь ужасно не прав?
Я хотел бы услышать мнения о том, что такое oop - все о глубине.
Я также хотел бы услышать, для чего предназначены статические классы.
Спасибо