Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Does Pure Fabrication refer to the increased representational gap only in terms of behavioural responsibilities i.e. the software classes added to the domain model to handle ONLY behaviour, or does it include any software class which represent something which does not exist in the domain model?

If it is the second option, does this mean that all Pure Fabrications together actually ARE the representational gap?

Or does Pure fabrication refer to any class which represent something which does not exist in the real world? Which would mean that the separation of Pure Fabrications and other classes becomes a very scientific distinction.

The trigger of this question was the text below in case some background information might help to understand my confusion.

Pure Fabrication: Problem: what object should have the responsibility, when you do not want to violate High Cohesion and Low Coupling or other goals, but solutions offered by Expert (for example) are not appropriate? There are many situations in which assigning responsibilities only to domain layer software classes leads to problems in terms of poor cohesion or coupling, or low reuse potential.

Solution: Assign a highly cohesive set of responsibilities to an artificial or convenience class that does not represent a problem domain concept. ...something made up, to support high cohesion, low coupling and reuse. Such a class is fabrication of the imagination. E.g. a database handler. This object will be a front-end fa├žade on to a large number of back-end helper objects. (persistentStorage is not a domain concept, but something made up or fabricated for the convenience of the software developer.)

The design of objects can be broadly divided into two groups:

  1. Those chosen by representational decomposition. (supports the goal of low representational gap)

  2. Those chosen by behavioural decomposition (convenience class conceived by the developer to group together some related behaviour or methods.

(Applying UML and Patterns, Addison Wesley Professional, 2004)

share|improve this question

migrated from stackoverflow.com Nov 16 '13 at 14:23

This question came from our site for professional and enthusiast programmers.

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.