In addition to a classic object-oriented common patterns and practices there are
several areas and problems not very easy and conveniently expressed by object oriented approach.
Few of so called declarative patterns are presented below :
* **Dependency resolution**
Starting at some level of complexity every software project usually faces need of managing dependencies
of some kind like package dependencies, components and versions dependency.
- Dependencies are easily represented by declarative means and moreover
- usually do not change in runtime. Thus dependency management is good candidate for static or comile-time resolution. S ee [[articles/declarative_patterns#dependency-resolution|details]].
+ Dependencies are easily represented by declarative means and moreover usually do not change
+ drastically at runtime. Thus dependency management is good candidate for static or comile-time resolution.
+ See [[articles/declarative_patterns#dependency-resolution|details]].
* **Demand and supply**
A big amount of a problems could be expressed in terms of supply and demand of interacting components.
See [[articles/declarative_patterns#demand-and-supply|details]].
* **Share or joint use**:
Examples: first/last use determination, share use planning and allocation(memory, etc).See for example [[concepts/usage| resources usage]].
===Dependency resolution===
+* **Verification and Adaptation**
+TODO expand on verification and adaptation. Upstream/downstream
+
+* **Preferences**
+Abitility to express preferences allows recognize situation ...