| point/class-static-factory-methods/Point-after.cs - A better solution with static factory methods. | Lecture 4 - slide 28 : 29 Program 2 |
using System;
public class Point {
public enum PointRepresentation {Polar, Rectangular}
private double r, a; // polar data repr: radius, angle
// Construct a point with polar coordinates
private Point(double r, double a){
this.r = r;
this.a = a;
}
public static Point MakePolarPoint(double r, double a){
return new Point(r,a);
}
public static Point MakeRectangularPoint(double x, double y){
return new Point(RadiusGivenXy(x,y),AngleGivenXy(x,y));
}
private static double RadiusGivenXy(double x, double y){
return Math.Sqrt(x * x + y * y);
}
private static double AngleGivenXy(double x, double y){
return Math.Atan2(y,x);
}
// Remaining Point operations not shown
}