User Tools

Site Tools


principles:information_hiding_encapsulation

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revisionBoth sides next revision
principles:information_hiding_encapsulation [2020-10-12 16:17] – old revision restored (2013-04-04 22:19) 159.69.186.191principles:information_hiding_encapsulation [2020-10-12 16:17] – old revision restored (2013-03-18 09:44) 159.69.186.191
Line 2: Line 2:
  
 ===== Variants and Alternative Names ===== ===== Variants and Alternative Names =====
- 
-  * Parnas' Law((Anbert Endres, Dieter Rombach: //A Handbook of Software and Systems Engineering//)) 
  
  
Line 31: Line 29:
   * Avoid aliasing problems with lists and similar data structures   * Avoid aliasing problems with lists and similar data structures
     * Copy internal list objects before returning them or only return a read-only ''interface'' to them     * Copy internal list objects before returning them or only return a read-only ''interface'' to them
- 
  
 ===== Caveats ===== ===== Caveats =====
Line 39: Line 36:
  
 ===== Origin ===== ===== Origin =====
- 
-David Parnas: //On the Criteria To Be Used in Decomposing Systems into Modules// 
  
  
Line 51: Line 46:
   * [[wiki:Questioned]]   * [[wiki:Questioned]]
 */ */
- 
  
 ===== Relations to Other Principles ===== ===== Relations to Other Principles =====
Line 71: Line 65:
   * [[Principle of Separate Understandability]] (PSU): IH/E is about constructing a module in a way that hides the inner workings so it can be used without knowing them. PSU on the other hand is about constructing a module such that its inner workings (and its usage also) can be understood without knowledge about //other// modules.   * [[Principle of Separate Understandability]] (PSU): IH/E is about constructing a module in a way that hides the inner workings so it can be used without knowing them. PSU on the other hand is about constructing a module such that its inner workings (and its usage also) can be understood without knowledge about //other// modules.
   * [[Easy to Use and Hard to Misuse]] (EUHM): A module should be properly encapsulated in order to make it easy to use and hard to misuse.   * [[Easy to Use and Hard to Misuse]] (EUHM): A module should be properly encapsulated in order to make it easy to use and hard to misuse.
- 
  
 ==== Principle Collections ==== ==== Principle Collections ====
Line 87: Line 80:
 /*[[wiki:Incomplete]]*/ /*[[wiki:Incomplete]]*/
 /*[[wiki:Complete]]*/ /*[[wiki:Complete]]*/
- 
  
 ===== Further Reading ===== ===== Further Reading =====
  
-  * [[wiki>EncapsulationDefinition]] 
-  * [[wp>Encapsulation (object-oriented programming)]] 
- 
-  * [[wiki>InformationHiding]] 
-  * [[wp>Information hiding]] 
- 
-  * [[http://www.javaworld.com/javaworld/jw-05-2001/jw-0518-encapsulation.html|Java World: Encapsulation is not information hiding]] 
-  * [[wiki>EncapsulationIsNotInformationHiding]] 
  
-  * [[wiki>OnDecomposingSystems]] 
principles/information_hiding_encapsulation.txt · Last modified: 2021-10-18 21:56 by christian