Version 3 (modified by Tanya, 17 years ago) (diff) |
---|
Properties Idea
Properties give solution to the sequence of problems:
- Initialization order problems
- Dependency/updating
- Undo/Redo
- Save/Load
- Optimization (central point)
- Safety (detect errors)
Properties Kinds
- Property
- ObjectProperty - A property which holds a reference to a single object.
- FinalProperty - One time write property. Once set, its value never changes.
- AutoProperty - Smart property. A property which automatically monitors the information it depends on. In order to work, it should rely only on other properties and immutable values.
- ResourceProperty - A property which holds a mutable resource. Useful for mutable non pro things like swing gui elements.
- ValueProperty - A property that has a reference to an object and allows getting and setting it.
- ParentProperty - Property which will hold a link to parent for parent-child relations.
- UndoProperty - A property which holds the undo manager for given bean. If the bean does not have such property, the properties try to locate UndoManager up (to parent).
- ListProperty - Basic list property. Holds references to many objects.
- ChildrenProperty - Property which manages list of children for a child/parent relation.
- ObjectProperty - A property which holds a reference to a single object.
How to apply properties to Sophie 2.0
- To get rid of the fields, except for immutable classes, and public static final things.
- Note that final instance fields are not so safe, because they are initialized after the super constructors.
- To convert mutable classes to ProObjects
- To gather more requirements to the properties library and apply them
- To keep the properties library with high quality, because everything else will depend on it.
- To be careful of cyclic dependencies (like a = b + 1, b = a + 1). No library can solve them.