public void Rate() { //Logging - 1st refactor of S in Solid _logger.Log("Starting rate."); _logger.Log("Loading policy."); // load policy - open file policy.json //Policy source - 2nd refactor of S in Solid //string policyJson = PolicySource.GetPolicyFromSource(); //Interface segragation change string policyJson = _policySource.GetPolicyFromSource(); //encoding format - 3rd refactor of S in Solid //var policy = PolicySerializer.GetPolicyFromJsonString(policyJson); //Interface segragation change var policy = _policySerializer.GetPolicyFromString(policyJson); //Open/Closed Principle implementation //We created 3 classes each for one type insurance - auto,land,life - now it's easier to add more //We create an abstract class Rate which the 3 classes inherit from //With the factory method we return the correct instance each time //We create a flood policy to check the extensibility of the principle //var factory = new RaterFactory(); //var rater = factory.Create(policy, this); //Interface segragation change var rater = _raterFactory.Create(policy); Rating = rater.Rate(policy); _logger.Log("Rating completed."); }
public void Rate() { StartLogging(); // load policy - open file policy.json string policyJson = _policySource.GetPolicyFromSource(); var policy = _policySerializer.GetPolicyFromJsonString(policyJson); var rater = _factory.Create(policy); rater.Rate(policy); FinishLogging(); }
public void Rate() { Logger.Log("Starting rate."); Logger.Log("Loading policy."); string policyJson = PolicySource.GetPolicyFromSource(); var policy = PolicySerializer.GetPolicyFromJsonString(policyJson); var factory = new RaterFactory(); var rater = factory.Create(policy, this); rater.Rate(policy); Logger.Log("Rating completed."); }
public void Rate() { _logger.Log("Starting rate."); _logger.Log("Loading policy."); string policyJson = _policySource.GetPolicyFromSource(); var policy = _policySerializer.GetPolicyFromString(policyJson); var rater = _raterFactory.Create(policy); Rating = rater.Rate(policy); _logger.Log("Rating completed."); }
public void Rate() { Logger.Log("Starting rate."); Logger.Log("Loading policy."); string policyJson = FilePolicySource.GetFilePolictyFromSource("policy.json"); var policy = PolicyDeserialilzer.GetDeserializePolicy(policyJson); var factory = new RaterFactory(); var rater = factory.Create(policy, this); rater?.Rate(policy); Logger.Log("Rating completed."); }
public void Rate() { // Logging - how is delegated Logger.Log("Starting rate."); Logger.Log("Loading policy."); // Persistence - how is delegated var policyJson = PolicySource.GetPolicyFromSource(); // Encoding Format - how is delegated var policy = PolicySerializer.GetPolicyFromJsonString(policyJson); var factory = new RaterFactory(); var rater = factory.Create(policy, this); rater?.Rate(policy); Logger.Log("Rating completed."); }