Несмотря на то, что конструкция компонента часто используется в качестве замены для структуры, это действительно антипаттерн: как и все классы OO, большинство компонентов должно инкапсулировать поведение, а не быть тупым контейнером данных. Первоначально Bean-компонент позиционировался как Java-эквивалент компонента Windows COM, свойства которого могут быть обнаружены с помощью содержащейся инфраструктуры.