├── Interface_Segregation_Principle_Example
├── TonsOfMethods.cls
├── MethodA_Interface.cls
├── MethodB_Interface.cls
├── kewlComponent
│ ├── kewlComponent.html
│ ├── kewlComponent.js-meta.xml
│ └── kewlComponent.js
├── utilities_Service
│ ├── utilities_Service.html
│ ├── utilities_Service.js-meta.xml
│ └── utilities_Service.js
├── ClassMethodACalls.cls
├── ClassB_Service.cls
├── ClassThatDependsOnAAndB.cls
├── ClassThatDependsOnA.cls
├── ClassThatDependsOnB.cls
├── ClassThatDependsOnC.cls
├── ClassA_Service.cls
├── ClassEverythingDependsOn.cls
└── ClassE_Service.cls
├── Liskov_Substitution_Principle_Example
├── taskCreatorLWC
│ ├── taskCreatorLWC.html
│ ├── opportunityTaskCreator.js
│ ├── taskCreator.js
│ ├── taskCreatorLWC.js
│ ├── contactTaskCreator.js
│ └── taskCreatorLWC.js-meta.xml
├── TaskCreatorLSP_Interface.cls
├── TaskCreator_Service.cls
├── TaskCreator_Interface.cls
├── ContactTask_Service.cls
└── OpportunityTaske_Service.cls
├── Open_Closed_Principle_Example
├── openClosedBadExample
│ ├── openClosedBadExample.html
│ ├── objectServiceLeadImpl.js
│ ├── objectServiceContactImpl.js
│ ├── objectServiceFactory.js
│ ├── openClosedBadExample.js-meta.xml
│ ├── openClosedBadExample.js
│ └── objectService.js
├── lwcMap
│ ├── lwcMap.html
│ ├── lwcMap.js-meta.xml
│ └── lwcMap.js
├── UIWrapper_Interface.cls
├── DisplayWrapper_Interface.cls
├── MapLocation.cls
├── MapMarker.cls
├── UIWrapperService.cls
├── OpenClosed_BadExample.cls
├── MapMarkerLead_Impl.cls
└── MapMarkerContact_Impl.cls
├── Single_Responsibility_Principle_Example
├── OppCalculator_Interface.cls
├── srpExample
│ ├── oppServiceCTO.js
│ ├── oppServiceManager.js
│ ├── srpExample.html
│ ├── oppServiceFactory.js
│ ├── srpExample.js
│ ├── srpExample.js-meta.xml
│ └── oppService.js
├── SingleResponsibilityPrinciple_Example.cls-meta.xml
├── OppCalculatorService_CTO.cls
├── OppCalculatorService_Managers.cls
├── OppCalculatorService_SalesAssoc.cls
├── OppCalculator_Controller.cls
├── OppCalculator_Service.cls
└── OppCalculator_Combined_Service.cls
├── Dependency_Inversion_Principle_Example
├── srpExample
│ ├── oppServiceCTO.js
│ ├── oppServiceManager.js
│ ├── srpExample.html
│ ├── oppServiceFactory.js
│ ├── srpExample.js
│ ├── srpExample.js-meta.xml
│ └── oppService.js
├── CaseClosure_Interface.cls
├── CaseClosureService_Interface.cls
├── CaseClosure_Controller.cls
├── CaseClosure_Service.cls
├── CaseClosure_Service_Delivery_Impl.cls
└── CaseClosure_Service_Order_Impl.cls
└── README.md
/Interface_Segregation_Principle_Example/TonsOfMethods.cls:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by gerry on 11/16/2021.
3 | */
4 |
5 | public interface TonsOfMethods
6 | {
7 | void methodC();
8 | }
--------------------------------------------------------------------------------
/Interface_Segregation_Principle_Example/MethodA_Interface.cls:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by gerry on 11/16/2021.
3 | */
4 |
5 | public interface MethodA_Interface
6 | {
7 | void methodA();
8 | }
--------------------------------------------------------------------------------
/Interface_Segregation_Principle_Example/MethodB_Interface.cls:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by gerry on 11/16/2021.
3 | */
4 |
5 | public interface MethodB_Interface
6 | {
7 | void methodB();
8 | }
--------------------------------------------------------------------------------
/Interface_Segregation_Principle_Example/kewlComponent/kewlComponent.html:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Liskov_Substitution_Principle_Example/taskCreatorLWC/taskCreatorLWC.html:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Interface_Segregation_Principle_Example/utilities_Service/utilities_Service.html:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Open_Closed_Principle_Example/openClosedBadExample/openClosedBadExample.html:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Single_Responsibility_Principle_Example/OppCalculator_Interface.cls:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by gerry on 10/20/2021.
3 | */
4 |
5 | public interface OppCalculator_Interface
6 | {
7 | void calculateOpps();
8 | }
--------------------------------------------------------------------------------
/Liskov_Substitution_Principle_Example/taskCreatorLWC/opportunityTaskCreator.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by gerry on 11/9/2021.
3 | */
4 |
5 | export class opportunityTaskCreator{
6 | createTasks() {
7 |
8 | }
9 | }
--------------------------------------------------------------------------------
/Liskov_Substitution_Principle_Example/TaskCreatorLSP_Interface.cls:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by gerry on 11/9/2021.
3 | */
4 |
5 | public interface TaskCreatorLSP_Interface
6 | {
7 | void createTasks(SObject record);
8 | }
--------------------------------------------------------------------------------
/Open_Closed_Principle_Example/lwcMap/lwcMap.html:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Dependency_Inversion_Principle_Example/srpExample/oppServiceCTO.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by gerry on 10/20/2021.
3 | */
4 |
5 | export class oppServiceCTO {
6 | calculateOpps(){
7 | console.log('Opps for CTO');
8 | }
9 | }
--------------------------------------------------------------------------------
/Liskov_Substitution_Principle_Example/taskCreatorLWC/taskCreator.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by gerry on 11/9/2021.
3 | */
4 |
5 | export class taskCreator {
6 | createTasks(){
7 | console.log('tasks created');
8 | }
9 | }
--------------------------------------------------------------------------------
/Single_Responsibility_Principle_Example/srpExample/oppServiceCTO.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by gerry on 10/20/2021.
3 | */
4 |
5 | export class oppServiceCTO {
6 | calculateOpps(){
7 | console.log('Opps for CTO');
8 | }
9 | }
--------------------------------------------------------------------------------
/Dependency_Inversion_Principle_Example/CaseClosure_Interface.cls:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by gerry on 11/30/2021.
3 | */
4 |
5 | public interface CaseClosure_Interface
6 | {
7 | void determineIfCaseShouldClose(List cases);
8 | }
--------------------------------------------------------------------------------
/Open_Closed_Principle_Example/openClosedBadExample/objectServiceLeadImpl.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by gerry on 10/31/2021.
3 | */
4 |
5 | export class objectServiceLeadImpl {
6 | setMessage(){
7 | return 'Im a Lead';
8 | }
9 | }
--------------------------------------------------------------------------------
/Dependency_Inversion_Principle_Example/srpExample/oppServiceManager.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by gerry on 10/20/2021.
3 | */
4 |
5 | export class oppServiceManager {
6 | calculateOpps(){
7 | console.log('Opps for Manager');
8 | }
9 | }
--------------------------------------------------------------------------------
/Open_Closed_Principle_Example/openClosedBadExample/objectServiceContactImpl.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by gerry on 10/31/2021.
3 | */
4 |
5 | export class objectServiceContactImpl {
6 | setMessage(){
7 | return 'Im a Contact';
8 | }
9 | }
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Salesforce SOLID Design Principles Tutorial Series
2 | This repo houses the code created in the Salesforce SOLID Design Principle Tutorial Series located here: https://www.youtube.com/playlist?list=PL0wESsiWMBTohLGsACdQaLFfjzNjeCuLh
3 |
--------------------------------------------------------------------------------
/Single_Responsibility_Principle_Example/srpExample/oppServiceManager.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by gerry on 10/20/2021.
3 | */
4 |
5 | export class oppServiceManager {
6 | calculateOpps(){
7 | console.log('Opps for Manager');
8 | }
9 | }
--------------------------------------------------------------------------------
/Dependency_Inversion_Principle_Example/CaseClosureService_Interface.cls:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by gerry on 11/30/2021.
3 | */
4 |
5 | public interface CaseClosureService_Interface
6 | {
7 | void determineIfCaseShouldClose(List cases);
8 | }
--------------------------------------------------------------------------------
/Interface_Segregation_Principle_Example/ClassMethodACalls.cls:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by gerry on 11/16/2021.
3 | */
4 |
5 | public with sharing class ClassMethodACalls
6 | {
7 | public void kewlFunction(string taco){
8 |
9 | }
10 | }
--------------------------------------------------------------------------------
/Liskov_Substitution_Principle_Example/taskCreatorLWC/taskCreatorLWC.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by gerry on 11/9/2021.
3 | */
4 |
5 | import {LightningElement} from 'lwc';
6 |
7 | export default class TaskCreatorLwc extends LightningElement {
8 |
9 | }
--------------------------------------------------------------------------------
/Liskov_Substitution_Principle_Example/TaskCreator_Service.cls:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by gerry on 11/9/2021.
3 | */
4 |
5 | public with sharing class TaskCreator_Service
6 | {
7 | public static void createTask(SObject record){
8 |
9 | }
10 | }
--------------------------------------------------------------------------------
/Open_Closed_Principle_Example/UIWrapper_Interface.cls:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by gerry on 10/30/2021.
3 | */
4 |
5 | public interface UIWrapper_Interface
6 | {
7 | List getRecords();
8 | List