Code Example: Data Structure Style vs. Object Style

Version 2.2 by chrisby on 2024/03/03 14:42

asd

type Square struct {
 length float
}

type Circle struct {
 length float
}

func Area(g GeometricObject) float {
 switch (g.type()):
   case Circle:
     return
   case Square:
     return ...
}

func Circumference(g GeometricObject) float {
  ...
}

asd

# Object-Oriented Style

class Square {
 length float

 constructor(length float) {
   this.length = length
  }

 func Area() float {
   return this.length * this.length  # Formula for square area: side^2
  }

 func Circumference() float {
   return 4 * this.length  # Formula for square circumference: 4 * side
  }
}

class Circle {
 radius float

 constructor(radius float) {
   this.radius = radius
  }

 func Area() float {
   return 3.14159 * this.radius * this.radius  # Formula for circle area: πr^2
  }

 func Circumference() float {
   return 2 * 3.14159 * this.radius  # Formula for circle circumference: 2πr
  }
}