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 revision
Previous revision
Next revisionBoth sides next revision
principles:information_hiding_encapsulation [2021-02-01 19:43] – old revision restored (2021-01-23 17:54) 95.216.157.202principles:information_hiding_encapsulation [2021-02-02 02:52] – old revision restored (2020-12-10 16:42) 95.216.157.202
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