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
-
... ... @@ -7,15 +7,17 @@ 7 7 8 8 ### Data Structure Style 9 9 10 - struct Square { 10 + interface GeometricObject {} 11 + 12 + class Square implements GeometricObject { 11 11 length float 12 12 } 13 13 14 - structCircle {16 + class Circle implements GeometricObject { 15 15 radius float 16 16 } 17 17 18 - function Circumference(g Object) float { 20 + function Circumference(g GeometricObject) float { 19 19 switch type(g): 20 20 case Square: 21 21 return 4 * g.length ... ... @@ -23,8 +23,8 @@ 23 23 return 2 * PI * g.radius 24 24 } 25 25 26 -1. Adding a function Area()withthe sameanatomyasCircumference() is easy,since it only requires adding new code.27 -1. Adding a new datatype, Rectangle, is moredifficultbecause it requires touching existing code, namely any functions like Circumference() or Area() that need to be enabled handle this datatype.28 +1. Adding an Area() function with a very similar anatomy to Circumference() is easy because it only requires adding new code. 29 +1. Adding a new datatype, Rectangle, is harder because it requires touching existing code, namely any functions like Circumference() or Area() that need to be enabled handle this datatype. 28 28 29 29 #### 30 30 ... ... @@ -57,3 +57,12 @@ 57 57 return 2 * PI * this.radius 58 58 } 59 59 } 62 + 63 +1. Adding a function Area() to GeometricObject Interface is hard since all classes implementing 64 +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. 65 + 66 +### Conclusion 67 + 68 +asd 69 + 70 +