Зараз я працюю в Qt і тому на C ++. У мене є класи, в яких є приватні члени даних та загальнодоступні функції членів. У мене є загальнодоступні геттери та сетери для членів даних, доступних у класі.
Тепер моє питання полягає в тому, що якщо у нас є геттери та сеттери для членів даних у наших класах, то який сенс робити ці члени даних приватними? Я погоджуюсь, що наявність приватних даних у базових класах звучить логічно. Але крім цього, мати приватних членів, а також їхніх геттерів та сетерів, здається, не є логічним для мене.
Або натомість ми можемо зробити всі змінні загальнодоступними, щоб взагалі не було потреби в геттерах і сеттерах? Чи хороша практика мати такі? Я знаю, що приватні члени забезпечують абстракцію даних, але наявність геттерів і сетерів насправді дозволяє досить легко отримати доступ до цих змінних. Будь-які вказівки щодо цього вітаються.