You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Nov 14, 2025. It is now read-only.
At the moment you have a Observable interface which defines methods for "read-only" access and the Property interface which extends Observable and adds the possibility to change the value. However, this means that if you have an instance of Property you can allways "read" the current value.
I suggest to add an interface Writable (or find a better name) that defines "write-only" methods. Then Property should extends both Observable and Writable. This way you can have an instance of Writable that the developer can only use to change the value but not to read the value.
This way you could be more specific and expressive when designing the API of your component. If your Component only provides an Observable to the outside world it's clear that this is only intended to get values from the Component. If you provide only an Writable it's clear that this is only intended to set values into the Component. If you provide a Property it's clear that both is intended.
This should also be considered when designing binding support. There should be something like a unidirectional binding but with inversed data flow. If you have an instance of an Observable you could bind this to a Writable so that when the value of the Observable changes it's pushed to the Writable.
The idea behind this comes from my JavaFX projects where I had situations where I wished for something like a WriteOnlyProperty instead of only Property and ReadOnlyProperty.
At the moment you have a
Observableinterface which defines methods for "read-only" access and thePropertyinterface which extendsObservableand adds the possibility to change the value. However, this means that if you have an instance ofPropertyyou can allways "read" the current value.I suggest to add an interface
Writable(or find a better name) that defines "write-only" methods. ThenPropertyshould extends bothObservableandWritable. This way you can have an instance ofWritablethat the developer can only use to change the value but not to read the value.This way you could be more specific and expressive when designing the API of your component. If your Component only provides an
Observableto the outside world it's clear that this is only intended to get values from the Component. If you provide only anWritableit's clear that this is only intended to set values into the Component. If you provide aPropertyit's clear that both is intended.This should also be considered when designing binding support. There should be something like a unidirectional binding but with inversed data flow. If you have an instance of an
Observableyou could bind this to aWritableso that when the value of theObservablechanges it's pushed to theWritable.The idea behind this comes from my JavaFX projects where I had situations where I wished for something like a
WriteOnlyPropertyinstead of onlyPropertyandReadOnlyProperty.