principles:tell_don_t_ask_information_expert
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
principles:tell_don_t_ask_information_expert [2013-09-06 15:10] – [Description] TdA == IE christian | principles:tell_don_t_ask_information_expert [2020-10-12 16:39] – old revision restored (2013-05-19 22:09) 159.69.186.191 | ||
---|---|---|---|
Line 11: | Line 11: | ||
/* fill in contexts here: */ | /* fill in contexts here: */ | ||
* [[contexts: | * [[contexts: | ||
- | * [[contexts: | + | |
===== Principle Statement ===== | ===== Principle Statement ===== | ||
Line 20: | Line 20: | ||
===== Description ===== | ===== Description ===== | ||
- | Each module has a set of responsibilities so there is a kind of mapping between | + | Each module has a set of responsibilities. Subsystems have specific tasks, packages group several related classes, classes have methods and attributes, and so on. So there is a kind of mapping between |
- | Another view on the principle is that responsibility mapping is bad when one module has to ask another module for information (getter invocation), | ||
- | The following reasoning shows that //Tell don't Ask// and // | ||
- | |||
- | * Suppose TdA is adhered to, but IE is neglected. | ||
- | * When IE is neglected, then there is a module which is not the information expert for its responsibility. | ||
- | * But then the module has to ask for the information it needs, so TdA is also neglected. | ||
- | * As this violates the assumption that TdA is adhered to, this means that adhering to TdA also results in adhering to IE. | ||
- | * Suppose IE is adhered to but TdA is neglected | ||
- | * When TdA is neglected, then there is a module '' | ||
- | * But then '' | ||
- | * As this violates the assumption that IE is adhered to, this means that adhering to IE also results in adhering to TdA. | ||
- | * So TdA and IE are equivalent views on the same principle. | ||
- | |||
- | Despite of its proof-like form this is not a formal proof as there is no formal definition of TdA and IE. Nevertheless TdA and IE can be seen as two views on the same principle. | ||
===== Rationale ===== | ===== Rationale ===== | ||
Line 99: | Line 85: | ||
===== Description Status ===== | ===== Description Status ===== | ||
/* Choose one of the following and comment out the rest: */ | /* Choose one of the following and comment out the rest: */ | ||
- | /*[[wiki: | + | [[wiki: |
- | [[wiki: | + | /*[[wiki: |
/ | / | ||
Line 109: | Line 95: | ||
* Andrew Hunt and David Thomas: // | * Andrew Hunt and David Thomas: // | ||
- | ===== Discussion ===== | ||
- | |||
- | Discuss this wiki article and the principle on the corresponding [[talk: |
principles/tell_don_t_ask_information_expert.txt · Last modified: 2021-10-18 21:42 by christian