Я использовал языки и методы программирования OO много лет назад (прежде всего на С++), но в промежуток времени не много сделал с OO.
Я начинаю делать небольшую утилиту на С#. Я мог бы просто запрограммировать все это без использования хорошей практики OO, но для меня было бы хорошим обновлением методов OO.
Как и уровни нормализации базы данных, я ищу контрольный список, который напомнит мне о различных эмпирических правилах для "хорошей" объектно-ориентированной программы - краткого списка "да/нет", который я иногда читаю во время проектирования и реализации чтобы я не мог думать и работать процедурно. Было бы еще более полезно, если бы в нем содержались надлежащие условия и понятия OO, чтобы любой контрольный элемент легко можно было найти для дальнейшей информации.
Что должно быть в контрольном списке, который поможет кому-то разработать хорошее программное обеспечение OO?
И наоборот, какие "тесты" могут быть применены, чтобы показать программное обеспечение не OO?