Posts

Showing posts from April, 2024

S.O.L.I.D. Principles with Example (Swift & Dart)

  S.O.L.I.D. Principles To create understandable, readable, and testable code that many developers can collaboratively work on. The following five concepts make up our SOLID principles: S ingle Responsibility O pen/Closed L iskov Substitution I nterface Segregation D ependency Inversion 1. Single Responsibility Principle A class should have one and only one reason to change, meaning that a class should have only one job. Problem:  class Invoice {     let String: Book     let price: Float     let quantity: Int     let discountRate: Int     let taxRate: Float     var total: Float = 0.0          init(book: Book, price: Float, quantity: Int, discountRate: Int, taxRate: Float) {         self.book = book     Self.price = price         self.quantity = quantity         self.discountRate = discountRate         self.taxRate = taxRate         self.total = self.calculateTotal()     }     public func calculateTotal() -> Float {         let price = ((book.price - book.price * discountRate) * qu