├── .gitignore ├── LICENSE.md ├── README.md ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── images ├── banner.png ├── dip.png ├── isp.png ├── lsp.png ├── ocp.png └── srp.png ├── settings.gradle.kts └── src └── main └── kotlin ├── patterns └── creational │ └── singleton │ ├── Main.kt │ └── Singleton.kt └── solid ├── dip ├── after │ ├── DatabaseLogger.kt │ ├── DatabaseManager.kt │ ├── FileLogger.kt │ └── Logger.kt └── before │ └── DatabaseManager.kt ├── isp ├── after │ ├── Eatable.kt │ ├── Human.kt │ ├── Robot.kt │ └── Workable.kt └── before │ ├── Human.kt │ ├── Robot.kt │ └── Worker.kt ├── lsp ├── after │ ├── Rectangle.kt │ ├── Shape.kt │ └── Square.kt └── before │ ├── Rectangle.kt │ ├── Square.kt │ └── main.kt ├── ocp ├── after │ ├── ContractorPayable.kt │ ├── FullTimeEmployeePayable.kt │ ├── PartTimeEmployeePayable.kt │ ├── PayCalculator.kt │ └── Payable.kt └── before │ └── PayCalculator.kt └── srp ├── after ├── DatabaseManager.kt └── FileLogger.kt └── before └── DatabaseManager.kt /.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | .idea 3 | build -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alidehkhodaei/oop-solid-patterns/HEAD/LICENSE.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alidehkhodaei/oop-solid-patterns/HEAD/README.md -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | kotlin.code.style=official 2 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alidehkhodaei/oop-solid-patterns/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alidehkhodaei/oop-solid-patterns/HEAD/gradle/wrapper/gradle-wrapper.properties -------------------------------------------------------------------------------- /gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alidehkhodaei/oop-solid-patterns/HEAD/gradlew -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alidehkhodaei/oop-solid-patterns/HEAD/gradlew.bat -------------------------------------------------------------------------------- /images/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alidehkhodaei/oop-solid-patterns/HEAD/images/banner.png -------------------------------------------------------------------------------- /images/dip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alidehkhodaei/oop-solid-patterns/HEAD/images/dip.png -------------------------------------------------------------------------------- /images/isp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alidehkhodaei/oop-solid-patterns/HEAD/images/isp.png -------------------------------------------------------------------------------- /images/lsp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alidehkhodaei/oop-solid-patterns/HEAD/images/lsp.png -------------------------------------------------------------------------------- /images/ocp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alidehkhodaei/oop-solid-patterns/HEAD/images/ocp.png -------------------------------------------------------------------------------- /images/srp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alidehkhodaei/oop-solid-patterns/HEAD/images/srp.png -------------------------------------------------------------------------------- /settings.gradle.kts: -------------------------------------------------------------------------------- 1 | 2 | rootProject.name = "solid" 3 | 4 | -------------------------------------------------------------------------------- /src/main/kotlin/patterns/creational/singleton/Main.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alidehkhodaei/oop-solid-patterns/HEAD/src/main/kotlin/patterns/creational/singleton/Main.kt -------------------------------------------------------------------------------- /src/main/kotlin/patterns/creational/singleton/Singleton.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alidehkhodaei/oop-solid-patterns/HEAD/src/main/kotlin/patterns/creational/singleton/Singleton.kt -------------------------------------------------------------------------------- /src/main/kotlin/solid/dip/after/DatabaseLogger.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alidehkhodaei/oop-solid-patterns/HEAD/src/main/kotlin/solid/dip/after/DatabaseLogger.kt -------------------------------------------------------------------------------- /src/main/kotlin/solid/dip/after/DatabaseManager.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alidehkhodaei/oop-solid-patterns/HEAD/src/main/kotlin/solid/dip/after/DatabaseManager.kt -------------------------------------------------------------------------------- /src/main/kotlin/solid/dip/after/FileLogger.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alidehkhodaei/oop-solid-patterns/HEAD/src/main/kotlin/solid/dip/after/FileLogger.kt -------------------------------------------------------------------------------- /src/main/kotlin/solid/dip/after/Logger.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alidehkhodaei/oop-solid-patterns/HEAD/src/main/kotlin/solid/dip/after/Logger.kt -------------------------------------------------------------------------------- /src/main/kotlin/solid/dip/before/DatabaseManager.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alidehkhodaei/oop-solid-patterns/HEAD/src/main/kotlin/solid/dip/before/DatabaseManager.kt -------------------------------------------------------------------------------- /src/main/kotlin/solid/isp/after/Eatable.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alidehkhodaei/oop-solid-patterns/HEAD/src/main/kotlin/solid/isp/after/Eatable.kt -------------------------------------------------------------------------------- /src/main/kotlin/solid/isp/after/Human.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alidehkhodaei/oop-solid-patterns/HEAD/src/main/kotlin/solid/isp/after/Human.kt -------------------------------------------------------------------------------- /src/main/kotlin/solid/isp/after/Robot.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alidehkhodaei/oop-solid-patterns/HEAD/src/main/kotlin/solid/isp/after/Robot.kt -------------------------------------------------------------------------------- /src/main/kotlin/solid/isp/after/Workable.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alidehkhodaei/oop-solid-patterns/HEAD/src/main/kotlin/solid/isp/after/Workable.kt -------------------------------------------------------------------------------- /src/main/kotlin/solid/isp/before/Human.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alidehkhodaei/oop-solid-patterns/HEAD/src/main/kotlin/solid/isp/before/Human.kt -------------------------------------------------------------------------------- /src/main/kotlin/solid/isp/before/Robot.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alidehkhodaei/oop-solid-patterns/HEAD/src/main/kotlin/solid/isp/before/Robot.kt -------------------------------------------------------------------------------- /src/main/kotlin/solid/isp/before/Worker.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alidehkhodaei/oop-solid-patterns/HEAD/src/main/kotlin/solid/isp/before/Worker.kt -------------------------------------------------------------------------------- /src/main/kotlin/solid/lsp/after/Rectangle.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alidehkhodaei/oop-solid-patterns/HEAD/src/main/kotlin/solid/lsp/after/Rectangle.kt -------------------------------------------------------------------------------- /src/main/kotlin/solid/lsp/after/Shape.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alidehkhodaei/oop-solid-patterns/HEAD/src/main/kotlin/solid/lsp/after/Shape.kt -------------------------------------------------------------------------------- /src/main/kotlin/solid/lsp/after/Square.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alidehkhodaei/oop-solid-patterns/HEAD/src/main/kotlin/solid/lsp/after/Square.kt -------------------------------------------------------------------------------- /src/main/kotlin/solid/lsp/before/Rectangle.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alidehkhodaei/oop-solid-patterns/HEAD/src/main/kotlin/solid/lsp/before/Rectangle.kt -------------------------------------------------------------------------------- /src/main/kotlin/solid/lsp/before/Square.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alidehkhodaei/oop-solid-patterns/HEAD/src/main/kotlin/solid/lsp/before/Square.kt -------------------------------------------------------------------------------- /src/main/kotlin/solid/lsp/before/main.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alidehkhodaei/oop-solid-patterns/HEAD/src/main/kotlin/solid/lsp/before/main.kt -------------------------------------------------------------------------------- /src/main/kotlin/solid/ocp/after/ContractorPayable.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alidehkhodaei/oop-solid-patterns/HEAD/src/main/kotlin/solid/ocp/after/ContractorPayable.kt -------------------------------------------------------------------------------- /src/main/kotlin/solid/ocp/after/FullTimeEmployeePayable.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alidehkhodaei/oop-solid-patterns/HEAD/src/main/kotlin/solid/ocp/after/FullTimeEmployeePayable.kt -------------------------------------------------------------------------------- /src/main/kotlin/solid/ocp/after/PartTimeEmployeePayable.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alidehkhodaei/oop-solid-patterns/HEAD/src/main/kotlin/solid/ocp/after/PartTimeEmployeePayable.kt -------------------------------------------------------------------------------- /src/main/kotlin/solid/ocp/after/PayCalculator.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alidehkhodaei/oop-solid-patterns/HEAD/src/main/kotlin/solid/ocp/after/PayCalculator.kt -------------------------------------------------------------------------------- /src/main/kotlin/solid/ocp/after/Payable.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alidehkhodaei/oop-solid-patterns/HEAD/src/main/kotlin/solid/ocp/after/Payable.kt -------------------------------------------------------------------------------- /src/main/kotlin/solid/ocp/before/PayCalculator.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alidehkhodaei/oop-solid-patterns/HEAD/src/main/kotlin/solid/ocp/before/PayCalculator.kt -------------------------------------------------------------------------------- /src/main/kotlin/solid/srp/after/DatabaseManager.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alidehkhodaei/oop-solid-patterns/HEAD/src/main/kotlin/solid/srp/after/DatabaseManager.kt -------------------------------------------------------------------------------- /src/main/kotlin/solid/srp/after/FileLogger.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alidehkhodaei/oop-solid-patterns/HEAD/src/main/kotlin/solid/srp/after/FileLogger.kt -------------------------------------------------------------------------------- /src/main/kotlin/solid/srp/before/DatabaseManager.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alidehkhodaei/oop-solid-patterns/HEAD/src/main/kotlin/solid/srp/before/DatabaseManager.kt --------------------------------------------------------------------------------