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
-
... ... @@ -5,26 +5,24 @@ 5 5 } 6 6 7 7 type Circle struct { 8 - radiusfloat8 + length float 9 9 } 10 10 11 - func Circumference(g Object) float { 12 - switch type(g): 13 - case Square: 14 - return 4 * g.length 11 + func Area(g GeometricObject) float { 12 + switch (g.type()): 15 15 case Circle: 16 - return 2 * PI * g.radius 14 + return 15 + case Square: 16 + return ... 17 17 } 18 + 19 + func Circumference(g GeometricObject) float { 20 + ... 21 + } 18 18 19 -* 20 - 21 21 #### Object-Oriented Style 22 22 23 - interface GeometricObject { 24 - Circumference() float 25 - } 26 - 27 - class Square implements GeometricObject { 25 + class Square { 28 28 length float 29 29 30 30 constructor(length float) { ... ... @@ -31,12 +31,16 @@ 31 31 this.length = length 32 32 } 33 33 32 + func Area() float { 33 + return this.length * this.length 34 + } 35 + 34 34 func Circumference() float { 35 35 return 4 * this.length 36 36 } 37 37 } 38 38 39 - class Circle implements GeometricObject{41 + class Circle { 40 40 radius float 41 41 42 42 constructor(radius float) { ... ... @@ -43,6 +43,10 @@ 43 43 this.radius = radius 44 44 } 45 45 48 + func Area() float { 49 + return PI * this.radius * this.radius 50 + } 51 + 46 46 func Circumference() float { 47 47 return 2 * PI * this.radius 48 48 }