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-08-10 10:56) 159.69.186.191 | ||
---|---|---|---|
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 ===== | ||
principles/tell_don_t_ask_information_expert.txt · Last modified: 2021-10-18 21:42 by christian