If an object has a property that is a collection, should the object create the collection object or make a consumer check for null? I know the consumer should not assume, just
I prefer to create the collection upon instantiation, provide add/remove methods in the containing object, and if needed, provide addAll/removeAll methods for adding and removing entire external collections. I never allow the collection object to be accessed for get or set by the caller - I may, however, provide a getter that returns a copy (poss. immutable) of the collection.
I have also had copy-on-write implementations which provide an immutably wrapped view, since any mutation will create a new underlying collection.