SOLID Principles in Swift - ( Single Responsibility Principle(SRP), Open/Closed Principle, Liskov Substitution Principle, Interface Segregation, Dependency Inversion)
SOLID Principles in Swift
- Single Responsibility Principle
- Open/Closed Principle
- Liskov Substitution Principle
- Interface Segregation
- Dependency Inversion
S - Single Responsibility Principle(SRP)
class SimpleHandler {
func simpleHandle() {
let data = requestToDataAPI()
let array = parseToResponse(data: data)
saveToDatabase(array: array)
}
private func requestToDataAPI() -> Data {
// Network request and wait the response
return Data()
}
private func parseToResponse(data: Data) -> [String] {
// Parse the network response into array
return []
}
private func saveToDatabase(array: [String]) {
// Save parsed response into database
print(array)
}
}
This Simple class perform multiple Responsibility like first network, second parsing data and last loadData Binding data
Example:- It states that every module or Class should have only one responsibility.
class SrpHandler {
let api: APIHandler
let parse: ParsingData
let datahander: DataHandler
init(api: APIHandler,
parse: ParsingData,
datahander: DataHandler) {
self.api = api
self.parse = parse
self.datahander = datahander
}
func handler(){
let data = api.reqDataToApi()
let array = parse.parseResponse(data: data)
datahander.loadDataUI(array: array)
}
}
// Network request and wait the response
class APIHandler {
func reqDataToApi() -> Data{
return Data()
}
}
// Parse the network response into array
class ParsingData {
func parseResponse(data: Data) -> [String]{
return []
}
}
// Save parsed response into database
class DataHandler {
func loadDataUI(array: [String]){
print(array)
}
}
O - Open/Closed Principle
Open means - Open for extension
closed means - closed for modification.
Open for Extension You should be able to extend or change the behavior of a class without effort. mean If you have to change in an existing class or change the behaviour.
Closed For Modification You must extend a class without changing the implematation
L - Liskov Substitution Principle (LSP)
Comments
Post a Comment