So I'm looking over some code I've written and noticed that most of the function calls are parameterless and return void. They tend to use public properties instead of arguments and return values. This was an outgrowth of the architectural pattern I was using and I just wound up extending it. The canonical example of MVP passive view has the view exposing properties about itself and delegating all real work to the presenter through void parameterless function calls.
When I noticed I was using this in my domain and database layers I started to feel I was somehow ignoring the notion of encapsulation.
Have I misused a good idea where it was never intended to be used?
[Clarification]
All called objects hold a reference to an interface, which the calling object implements. This interface exposes any data needed by the called object to its job. In most cases, the called object only modifies a single property of the calling object. This mirrors how the presenter and view communicate in a Passive View pattern. Up to this point all exposed properties are readonly unless need dictates otherwise.
The more I think about it, the more uneasy I become with the whole approach. Its fine for view-presenter interaction because the view simply passes any changes directly to the UI. Domain and Database objects are much more complex and the potential for unintentional changes is much greater.