Який принцип Solid порушує Singleton?

Синглтон і SOLID O – принцип відкритості/закритості: об’єкти мають бути відкриті для розширення, але закриті для зміни. Синглтон порушує цей принцип, оскільки контролює точку доступу і повертає тільки самого себе, а не розширення.

Одинак ( Singleton , Синглтон ) – породжувальний патерн, який гарантує, що для певного класу буде створено тільки один об’єкт, а також надасть до цього об’єкта точку доступу. Синглтон дає змогу створити об’єкт тільки за його необхідності. Якщо об’єкт не потрібен, то він не буде створений.

Singleton може зберігати свій стан Оскільки Singleton є скрізь, то контролювати порядок викликів практично неможливо. Це може призводити до різноманітних артефактів. Ця проблема посилює негативні ефекти збільшення зв’язності коду і породжує ще більш витончені баги.