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