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,17 +7,15 @@ 7 7 8 8 ### Data Structure Style 9 9 10 - interface GeometricObject {} 11 - 12 - class Square implements GeometricObject { 10 + struct Square { 13 13 length float 14 14 } 15 15 16 - classCircleimplements GeometricObject{14 + struct Circle { 17 17 radius float 18 18 } 19 19 20 - function Circumference(g GeometricObject) float {18 + function Circumference(g Object) float { 21 21 switch type(g): 22 22 case Square: 23 23 return 4 * g.length ... ... @@ -25,8 +25,8 @@ 25 25 return 2 * PI * g.radius 26 26 } 27 27 28 -1. Adding a nArea()function witha verysimilaranatomytoCircumference() is easybecause it only requires adding new code.29 -1. Adding a new datatype, Rectangle, is harderbecause it requires touching existing code, namely any functions like Circumference() or Area() that need to be enabled handle this datatype.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. 30 30 31 31 #### 32 32 ... ... @@ -59,12 +59,3 @@ 59 59 return 2 * PI * this.radius 60 60 } 61 61 } 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 -