protected void Page_Load(object sender, EventArgs e) { IDatabaseV1 cust = new CustomerWithRead(); cust.Add(); cust.Read(); }
// e.g. private void ManipulateCustomers() { var database = new Database(); var customer = new Customer(); customer.Add(database); // Old functionality, works fine var readCustomer = new CustomerWithRead(); readCustomer.Read(); // Good! New functionalty is separate from existing customers }
public static void Main(string[] args) { List <CustomerOCP> Customers = new List <CustomerOCP>(); Customers.Add(new SilverCustomer()); Customers.Add(new GoldCustomer()); // Using OCP Customers.Add(new Enquiry()); // Using ISP foreach (CustomerLSP o in Customers) { o.Add(); } IDatabase i = new CustomerLSP(); // 1000 happy old clients not touched i.Add(); // using Liskov IDatabaseV1 iv1 = new CustomerWithRead(); // new clients iv1.Read(); }