Имам приложение, което има връзка с база данни и въпреки че очевидно има обекти, които съответстват на данни в моята база данни, откривам, че всичките ми методи за обработка на данни могат да бъдат статични, тъй като няма реална нужда от екземпляр на обекта, тъй като моите класове просто работят върху данните и изплюйте нещо, няма нужда да съхранявате нищо извън обхвата на метода. Ако мога да направя метод или клас статичен, трябва ли да го направя?
Също така използвам полезен сингълтон клас за общи (единичен екземпляр) „глобални данни“. Искам да имам добър дизайн, но на тези не се гледат ли с недоволство?
Нека ви дам пример за това, което правя. Зареждам някои данни от моята база данни, използвайки статичен метод, за да ги поставя в глобална променлива в моя клас Singleton (списък с потребителски обект)
Така че моят сингълтон клас има нещо подобно
List<MyCustomObject> SomeList
и моят статичен клас има
static void LoadData()
foreach(data in database something or other)
singletonClass.SomeList.Add()
Така че кодът по-горе може да зареди някои записи от базата данни в SomeList, където всеки елемент в SomeList е от тип MyCustomObject, който съдържа единичен запис на информация.
Това добро изпълнение ли е? Така ли бихте го кодирали?
След това в моя презентационен слой бих извикал друг статичен клас от методи, за да получа данни от единичния клас в необходимия формат.
Не се чувства много OOPey. Но наистина не мога да се сетя как да го направя по друг начин, по който го правиш.