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 }