Які існують стратегії OOP для роботи з базою даних, але для того, щоб зберігати речі перевіряти? Скажімо, у мене є клас користувача, і моє виробниче середовище працює проти MySQL. Я бачу пару можливих підходів, показаних тут за допомогою PHP:
Передайте джерело $ data_source з інтерфейсами для
load()
таsave()
, щоб абстрагувати джерело даних. Під час тестування пройдіть інший сховище даних.$ user = новий Користувач ($ mysql_data_source); $ user-> load ('bob'); $ user-> setNickname ('Robby'); $ user-> save ();
Використовуйте фабрику, яка отримує доступ до бази даних і передає результат результату конструктору користувача. Під час тестування вручну генеруйте параметр $ row або знущайтеся над об'єктом у UserFactory :: $ data_source. (Як я можу зберегти зміни до запису?)
class UserFactory { static $data_source; public static function fetch( $username ) { $row = self::$data_source->get( [params] ); $user = new User( $row ); return $user; } }
У мене поруч є шаблони дизайну та чистий код , але я намагаюся знайти відповідні концепції.