Changes for page Code Example: Data Structure Style vs. Object Style
Last modified by chrisby on 2024/03/03 17:01
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -1,21 +8,14 @@ 1 -### Use Cases 2 - 3 -This example is intended to demonstrate the extensibility differences between data structures and objects by extending them with 4 - 5 -1. an Area() function (extending behavior) 6 -1. a rectangle type (extending data type) 7 - 8 8 ### Data Structure Style 9 9 10 - structSquare {3 + type Square struct { 11 11 length float 12 12 } 13 13 14 - structCircle {7 + type Circle struct { 15 15 radius float 16 16 } 17 17 18 - func tionCircumference(g Object) float {11 + func Circumference(g Object) float { 19 19 switch type(g): 20 20 case Square: 21 21 return 4 * g.length ... ... @@ -23,11 +23,8 @@ 23 23 return 2 * PI * g.radius 24 24 } 25 25 26 -1. Adding a function Area() with the same anatomy as Circumference() is easy, since it only requires adding new code. 27 -1. Adding a new datatype, Rectangle, is more difficult because it requires touching existing code, namely any functions like Circumference() or Area() that need to be enabled handle this datatype. 19 +* 28 28 29 -#### 30 - 31 31 #### Object-Oriented Style 32 32 33 33 interface GeometricObject {