Объектно-ориентированное программирование не имеет ничего общего с алгоритмами (и, следовательно, асимптотическим временем выполнения), это просто популярный способ структурирования программ в попытке сделать их более гибкими и устойчивыми к изменениям.
То же самое для шаблонов проектирования.