| 29 | | dealing with a large number of objects with immutable state. However, this is |
| 30 | | also a fragile solution as changes on the parametric object ancestors may |
| 31 | | imply changes to the number and meaning of the parametric object parameters |
| 32 | | which, in turn, may imply changes to all the Prolog facts used to represent |
| 33 | | the individual objects. |
| | 29 | dealing with a large number of objects with immutable state. In addition, all |
| | 30 | the predicates dealing managing these compact representation are encapsulated |
| | 31 | in a parametric object. This can be, however, a fragile solution as changes on |
| | 32 | the parametric object ancestors may imply changes to the number and meaning of |
| | 33 | the parametric object parameters which, in turn, may imply changes to all the |
| | 34 | Prolog facts used to represent the individual objects. |
| | 35 | |
| | 36 | Note that parametric objects can co-exist with "normal" objects. For example, |
| | 37 | when using a class-based design, we may use "normal" instances together with |
| | 38 | a parametric instance of the same class. |