SlideShare uma empresa Scribd logo
1 de 47
Baixar para ler offline
OO SOLID
Applying SOLID principles to improve object-oriented designs
Say we have a mechanic
shop...
ServiceOrder

AddPart(Part)
Total()

1..*
Part
Name
Price
!
public class Part

{

private decimal price;



public Part(string name, decimal price)

{

this.price = price;

}



public decimal Price

{

get { return price; }

set { price = value; }

}



}
!
public class ServiceOrder {

private List<Part> parts;



public ServiceOrder() {

parts = new List<Part>();

}



public void AddPart(Part part) {

parts.Add(part);

}



public decimal Total() {

decimal total = 0;

foreach (Part aPart in parts) {

total += aPart.Price;

}

return total;

}

}
Now we want to specify additional
quantities of each part.	

(because we are lazy)
ServiceOrder
partsAndQtys : Dictionary
AddPart(Part)
Total()

1..*
Part
Name
Price
!

public class ServiceOrder

{

private Dictionary<Part, int> partsAndQuantities;




public ServiceOrder() {

partsAndQuantities = new Dictionary<Part, int>();

}



public void AddPart(Part part) {

this.AddPart(part, 1);

}



public void AddPart(Part part, int quantity) {

int currentQuantity = 0;

if (partsAndQuantities.ContainsKey(part)) {

currentQuantity = partsAndQuantities[part];

}

int newQuantity = currentQuantity + quantity;

partsAndQuantities.Add(part, newQuantity);

}



public decimal Total() {

decimal total = 0;

foreach (Part aPart in partsAndQuantities.Keys) {

int quantity = partsAndQuantities[aPart];

total += aPart.Price * quantity;

}

return total;

}

}
ServiceOrder

AddPart(Part, Qty)
Total()
1

1..*
LineItem
Part
Quantity

Part
*

1

Name
Price
!
public class LineItem

{

private Part part;



private int quantity;



public LineItem(Part part, int quantity) {

this.part = part;

this.quantity = quantity;

}



public Part Part {

get { return part; }

}



public int Quantity {

get { return quantity; }

private set { quantity = value; }

}

}
public class ServiceOrder

{

private List<LineItem> lineItems;



public ServiceOrder() {

lineItems = new List<LineItem>();

}



public void AddPart(Part part) {

this.AddPart(part, 1);

}



public void AddPart(Part part, int quantity) {

LineItem lineItem = new LineItem(part, quantity);

lineItems.Add(lineItem);

}



public decimal Total() {

decimal total = 0;

foreach (LineItem aLineItem in lineItems) {

total += aLineItem.Part.Price * aLineItem.Quantity;

}



return total;

}

}
S ingle Responsibility Principle
Now we want to add a markup
for each part.	

(because we want to track
profit margin)
ServiceOrder

AddPart(Part, Qty)
Total()
1

1..*
Part

LineItem
Part
Quantity

*

1

Name
MarkupPercentage
WholesalePrice
!

public class Part

{

private string name;

private decimal wholesalePrice;

private int markupPercentage;




public Part(string name, decimal price) :this(name, price, 0)

{}



public Part(string name, decimal price, int markupPercentage) {

this.name = name;

this.wholesalePrice = price;

this.markupPercentage = markupPercentage;

}



public string Name {

get { return name; }

}



public decimal WholesalePrice {

get { return wholesalePrice; }

}



public int MarkupPercentage {

get { return markupPercentage; }

}

}
!

public class ServiceOrder

{

private List<LineItem> lineItems;




public ServiceOrder() {

lineItems = new List<LineItem>();

}



public void AddPart(Part part) {

this.AddPart(part, 1);

}



public void AddPart(Part part, int additionalQuantity) {

LineItem lineItem = new LineItem(part, additionalQuantity);

lineItems.Add(lineItem);

}



public decimal Total() {

decimal total = 0;

foreach (LineItem aLineItem in lineItems) {

total += aLineItem.Part.WholesalePrice

* (aLineItem.Part.MarkupPercentage/100m + 1)

* aLineItem.Quantity;

}

return total;

}

}
ServiceOrder

AddPart(Part, Qty)
Total()
1

1..*
Part

LineItem
Part
Quantity
LineTotal()

*

1

Name
MarkupPercentage
WholesalePrice
!
// New methods in the Part class	


public decimal Price {

get { return wholesalePrice * MarkupMultiplier(); }

}


!
private decimal MarkupMultiplier() {

return (markupPercentage / 100m + 1);

}	

!
!




// And one in the LineItem class



public decimal LineTotal() {

return part.Price * quantity;

}
!
// In the ServiceOrder class...



public decimal Total() {



decimal total = 0;

foreach (LineItem aLineItem in lineItems) {

total += aLineItem.LineTotal();

}

return total;




}
O pen/Closed Principle
Now we want to add labor costs.	

(because we want to 	

make more money)
Part
Name
MarkupPercentage
WholesalePrice
Price()
Part
Name
MarkupPercentage
WholesalePrice

Labor
Price
Price()
!
public class Labor : Part

{

public Labor(string name, decimal price)	
: base(name, price)	
{}

}



Item
Name
CalculatePrice()

Labor
Price
CalculatePrice()

Part
MarkupPercentage
WholesalePrice
CalculatePrice()
!
public interface Item

{

string Name { get; }

decimal CalculatePrice();

}
L iskov Substitution Principle
Now we want to generate
receipts.	

(because we want to	

seem professionalish)
Presentation Layer

Business Layer

ReceiptGenerator

ServiceOrder

PrintReceipt()

AddPart(Part, Qty)
Total()
!
public class ReceiptGenerator

{

private FixItMechanicsSystem system;

private EpsonTMT88IVPrinter epsonTMT88IVPrinter;

private string initString = "sasllkslsl398383fa";	


public void PrintReceipt() {

ServiceOrder order = system.FinalizeOrder();	


string receiptString = "Total........ $" + order.Total();

epsonTMT88IVPrinter.Initialize(initString);

epsonTMT88IVPrinter.PrintBwMed239(receiptString);

epsonTMT88IVPrinter.Flush();	
}

}
Presentation Layer
ReceiptGenerator

PrintReceipt()

Business Layer
Receipt

Total()

ServiceOrder

AddPart(Part, Qty)
Total()


// In the ReciptGenerator class.



public void PrintReceipt() {

IReceipt receipt = system.FinalizeOrder();	


string receiptString = "Total........ $" + receipt.Total();

epsonTMT88IVPrinter.Initialize(initString);

epsonTMT88IVPrinter.PrintBwMed239(receiptString);

epsonTMT88IVPrinter.Flush();

}
I nterface Segregation Principle
We need to print to a new
printer.	

(because we’re growing and they
don’t make the old one anymore)
ReceiptGenerator

PrintReceipt()

EpsonT88IVPrinter
1

Initialize(String)
PrintBwMed239(String)
Flush()
!
public class ReceiptGenerator

{

private FixItMechanicsSystem system;

private EpsonTMT88IV epsonTMT88IVPrinter;

private string initString = "sasllkslsl398383fa";	


public void PrintReceipt() {

Receipt receipt = system.FinalizeOrder();	


string receiptString = "Total........ $" + receipt.Total();

epsonTMT88IVPrinter.Initialize(initString);

epsonTMT88IVPrinter.PrintBwMed239(receiptString);

epsonTMT88IVPrinter.Flush();	
}

}
ReceiptGenerator

PrintReceipt()

EpsonPrinterAdapter

1
EpsonT88IVPrinter

1

GenericPrinter

Print(String)

SamsungPrinterAdapter

1
SamsungSRP350

Initialize(String)

Initialize(String)

PrintBwMed239(String)

ProcessPages(String)

Flush()


public class ReceiptGenerator

{

private FixItMechanicsSystem system;

private IGenericPrinter printer;



public void PrintReceipt() {

Receipt receipt = system.FinalizeOrder();

string receiptString = "Total........ $" + receipt.Total();

printer.Print(receiptString);

}

}


public class EpsonPrinterAdapter : IGenericPrinter

{

private EpsonTMT88IV epsonTMT88IVPrinter;

private string initString = "sasllkslsl398383fa";



public void Print(string printString) {

epsonTMT88IVPrinter.Initialize(initString);

epsonTMT88IVPrinter.PrintBwMed239(printString);

epsonTMT88IVPrinter.Flush();

}

}


public class SamsungPrinterAdapter : IGenericPrinter

{

private SamsungSRP350 samsungSRP350Printer;

private string initString = "aksreiufgu";



public void Print(string printString) {

samsungSRP350Printer.Init(initString);

samsungSRP350Printer.ProcessPages(printString);

}

}
D ependency Inversion Principle
S ingle Responsibility Principle
O pen/Closed Principle
L iskov Substitution Principle
I nterface Segregation Principle
D ependency Inversion Principle
Questions?
X
Poor
Design

• Duplication
• Ambiguity
• Complexity
✓
Good
Design

✓ Low Coupling
✓ High Cohesion
Questions?

Mais conteúdo relacionado

Mais procurados

Functions in C++
Functions in C++Functions in C++
Functions in C++home
 
Javascript function
Javascript functionJavascript function
Javascript functionLearningTech
 
The Ring programming language version 1.5.3 book - Part 21 of 184
The Ring programming language version 1.5.3 book - Part 21 of 184The Ring programming language version 1.5.3 book - Part 21 of 184
The Ring programming language version 1.5.3 book - Part 21 of 184Mahmoud Samir Fayed
 
Laziness, trampolines, monoids and other functional amenities: this is not yo...
Laziness, trampolines, monoids and other functional amenities: this is not yo...Laziness, trampolines, monoids and other functional amenities: this is not yo...
Laziness, trampolines, monoids and other functional amenities: this is not yo...Codemotion
 
C++ Function
C++ FunctionC++ Function
C++ FunctionHajar
 
The Ring programming language version 1.5.4 book - Part 21 of 185
The Ring programming language version 1.5.4 book - Part 21 of 185The Ring programming language version 1.5.4 book - Part 21 of 185
The Ring programming language version 1.5.4 book - Part 21 of 185Mahmoud Samir Fayed
 
The Ring programming language version 1.9 book - Part 28 of 210
The Ring programming language version 1.9 book - Part 28 of 210The Ring programming language version 1.9 book - Part 28 of 210
The Ring programming language version 1.9 book - Part 28 of 210Mahmoud Samir Fayed
 
Call by value or call by reference in C++
Call by value or call by reference in C++Call by value or call by reference in C++
Call by value or call by reference in C++Sachin Yadav
 
The Ring programming language version 1.5 book - Part 4 of 31
The Ring programming language version 1.5 book - Part 4 of 31The Ring programming language version 1.5 book - Part 4 of 31
The Ring programming language version 1.5 book - Part 4 of 31Mahmoud Samir Fayed
 
LinkedIn TBC JavaScript 100: Functions
 LinkedIn TBC JavaScript 100: Functions LinkedIn TBC JavaScript 100: Functions
LinkedIn TBC JavaScript 100: FunctionsAdam Crabtree
 
The Ring programming language version 1.7 book - Part 25 of 196
The Ring programming language version 1.7 book - Part 25 of 196The Ring programming language version 1.7 book - Part 25 of 196
The Ring programming language version 1.7 book - Part 25 of 196Mahmoud Samir Fayed
 
Reference Parameter, Passing object by reference, constant parameter & Defaul...
Reference Parameter, Passing object by reference, constant parameter & Defaul...Reference Parameter, Passing object by reference, constant parameter & Defaul...
Reference Parameter, Passing object by reference, constant parameter & Defaul...Meghaj Mallick
 
Lecture#6 functions in c++
Lecture#6 functions in c++Lecture#6 functions in c++
Lecture#6 functions in c++NUST Stuff
 
C++ functions presentation by DHEERAJ KATARIA
C++ functions presentation by DHEERAJ KATARIAC++ functions presentation by DHEERAJ KATARIA
C++ functions presentation by DHEERAJ KATARIADheeraj Kataria
 
Chapter12 array-single-dimension
Chapter12 array-single-dimensionChapter12 array-single-dimension
Chapter12 array-single-dimensionDeepak Singh
 
The Ring programming language version 1.7 book - Part 24 of 196
The Ring programming language version 1.7 book - Part 24 of 196The Ring programming language version 1.7 book - Part 24 of 196
The Ring programming language version 1.7 book - Part 24 of 196Mahmoud Samir Fayed
 
The Ring programming language version 1.5.1 book - Part 22 of 180
The Ring programming language version 1.5.1 book - Part 22 of 180The Ring programming language version 1.5.1 book - Part 22 of 180
The Ring programming language version 1.5.1 book - Part 22 of 180Mahmoud Samir Fayed
 

Mais procurados (20)

Functions in C++
Functions in C++Functions in C++
Functions in C++
 
Javascript function
Javascript functionJavascript function
Javascript function
 
The Ring programming language version 1.5.3 book - Part 21 of 184
The Ring programming language version 1.5.3 book - Part 21 of 184The Ring programming language version 1.5.3 book - Part 21 of 184
The Ring programming language version 1.5.3 book - Part 21 of 184
 
Laziness, trampolines, monoids and other functional amenities: this is not yo...
Laziness, trampolines, monoids and other functional amenities: this is not yo...Laziness, trampolines, monoids and other functional amenities: this is not yo...
Laziness, trampolines, monoids and other functional amenities: this is not yo...
 
C++ Function
C++ FunctionC++ Function
C++ Function
 
Array and functions
Array and functionsArray and functions
Array and functions
 
The Ring programming language version 1.5.4 book - Part 21 of 185
The Ring programming language version 1.5.4 book - Part 21 of 185The Ring programming language version 1.5.4 book - Part 21 of 185
The Ring programming language version 1.5.4 book - Part 21 of 185
 
The Ring programming language version 1.9 book - Part 28 of 210
The Ring programming language version 1.9 book - Part 28 of 210The Ring programming language version 1.9 book - Part 28 of 210
The Ring programming language version 1.9 book - Part 28 of 210
 
C++ functions
C++ functionsC++ functions
C++ functions
 
Call by value or call by reference in C++
Call by value or call by reference in C++Call by value or call by reference in C++
Call by value or call by reference in C++
 
The Ring programming language version 1.5 book - Part 4 of 31
The Ring programming language version 1.5 book - Part 4 of 31The Ring programming language version 1.5 book - Part 4 of 31
The Ring programming language version 1.5 book - Part 4 of 31
 
LinkedIn TBC JavaScript 100: Functions
 LinkedIn TBC JavaScript 100: Functions LinkedIn TBC JavaScript 100: Functions
LinkedIn TBC JavaScript 100: Functions
 
C++ functions
C++ functionsC++ functions
C++ functions
 
The Ring programming language version 1.7 book - Part 25 of 196
The Ring programming language version 1.7 book - Part 25 of 196The Ring programming language version 1.7 book - Part 25 of 196
The Ring programming language version 1.7 book - Part 25 of 196
 
Reference Parameter, Passing object by reference, constant parameter & Defaul...
Reference Parameter, Passing object by reference, constant parameter & Defaul...Reference Parameter, Passing object by reference, constant parameter & Defaul...
Reference Parameter, Passing object by reference, constant parameter & Defaul...
 
Lecture#6 functions in c++
Lecture#6 functions in c++Lecture#6 functions in c++
Lecture#6 functions in c++
 
C++ functions presentation by DHEERAJ KATARIA
C++ functions presentation by DHEERAJ KATARIAC++ functions presentation by DHEERAJ KATARIA
C++ functions presentation by DHEERAJ KATARIA
 
Chapter12 array-single-dimension
Chapter12 array-single-dimensionChapter12 array-single-dimension
Chapter12 array-single-dimension
 
The Ring programming language version 1.7 book - Part 24 of 196
The Ring programming language version 1.7 book - Part 24 of 196The Ring programming language version 1.7 book - Part 24 of 196
The Ring programming language version 1.7 book - Part 24 of 196
 
The Ring programming language version 1.5.1 book - Part 22 of 180
The Ring programming language version 1.5.1 book - Part 22 of 180The Ring programming language version 1.5.1 book - Part 22 of 180
The Ring programming language version 1.5.1 book - Part 22 of 180
 

Semelhante a Applying SOLID Principles

Working effectively with legacy code
Working effectively with legacy codeWorking effectively with legacy code
Working effectively with legacy codeShriKant Vashishtha
 
Functional Programming In Java
Functional Programming In JavaFunctional Programming In Java
Functional Programming In JavaAndrei Solntsev
 
Flink Batch Processing and Iterations
Flink Batch Processing and IterationsFlink Batch Processing and Iterations
Flink Batch Processing and IterationsSameer Wadkar
 
Laziness, trampolines, monoids and other functional amenities: this is not yo...
Laziness, trampolines, monoids and other functional amenities: this is not yo...Laziness, trampolines, monoids and other functional amenities: this is not yo...
Laziness, trampolines, monoids and other functional amenities: this is not yo...Mario Fusco
 
Dti2143 chapter 5
Dti2143 chapter 5Dti2143 chapter 5
Dti2143 chapter 5alish sha
 
Pragmatic functional refactoring with java 8
Pragmatic functional refactoring with java 8Pragmatic functional refactoring with java 8
Pragmatic functional refactoring with java 8RichardWarburton
 
COMP360 Assembler Write an assembler that reads the source code of an.pdf
COMP360 Assembler Write an assembler that reads the source code of an.pdfCOMP360 Assembler Write an assembler that reads the source code of an.pdf
COMP360 Assembler Write an assembler that reads the source code of an.pdffazalenterprises
 
Creating a Facebook Clone - Part XXIX - Transcript.pdf
Creating a Facebook Clone - Part XXIX - Transcript.pdfCreating a Facebook Clone - Part XXIX - Transcript.pdf
Creating a Facebook Clone - Part XXIX - Transcript.pdfShaiAlmog1
 
Creat Shape classes from scratch DETAILS You will create 3 shape cla.pdf
Creat Shape classes from scratch DETAILS You will create 3 shape cla.pdfCreat Shape classes from scratch DETAILS You will create 3 shape cla.pdf
Creat Shape classes from scratch DETAILS You will create 3 shape cla.pdfaromanets
 
RECURSION IN C
RECURSION IN C RECURSION IN C
RECURSION IN C v_jk
 
Recursion in C
Recursion in CRecursion in C
Recursion in Cv_jk
 

Semelhante a Applying SOLID Principles (20)

Array Cont
Array ContArray Cont
Array Cont
 
Working effectively with legacy code
Working effectively with legacy codeWorking effectively with legacy code
Working effectively with legacy code
 
25-functions.ppt
25-functions.ppt25-functions.ppt
25-functions.ppt
 
Functional Programming In Java
Functional Programming In JavaFunctional Programming In Java
Functional Programming In Java
 
Flink Batch Processing and Iterations
Flink Batch Processing and IterationsFlink Batch Processing and Iterations
Flink Batch Processing and Iterations
 
Laziness, trampolines, monoids and other functional amenities: this is not yo...
Laziness, trampolines, monoids and other functional amenities: this is not yo...Laziness, trampolines, monoids and other functional amenities: this is not yo...
Laziness, trampolines, monoids and other functional amenities: this is not yo...
 
Functions
FunctionsFunctions
Functions
 
function_v1.ppt
function_v1.pptfunction_v1.ppt
function_v1.ppt
 
function_v1.ppt
function_v1.pptfunction_v1.ppt
function_v1.ppt
 
Function in c
Function in cFunction in c
Function in c
 
Dti2143 chapter 5
Dti2143 chapter 5Dti2143 chapter 5
Dti2143 chapter 5
 
Pragmatic functional refactoring with java 8
Pragmatic functional refactoring with java 8Pragmatic functional refactoring with java 8
Pragmatic functional refactoring with java 8
 
COMP360 Assembler Write an assembler that reads the source code of an.pdf
COMP360 Assembler Write an assembler that reads the source code of an.pdfCOMP360 Assembler Write an assembler that reads the source code of an.pdf
COMP360 Assembler Write an assembler that reads the source code of an.pdf
 
Refactoring
RefactoringRefactoring
Refactoring
 
Monads in Swift
Monads in SwiftMonads in Swift
Monads in Swift
 
Creating a Facebook Clone - Part XXIX - Transcript.pdf
Creating a Facebook Clone - Part XXIX - Transcript.pdfCreating a Facebook Clone - Part XXIX - Transcript.pdf
Creating a Facebook Clone - Part XXIX - Transcript.pdf
 
Function in c
Function in cFunction in c
Function in c
 
Creat Shape classes from scratch DETAILS You will create 3 shape cla.pdf
Creat Shape classes from scratch DETAILS You will create 3 shape cla.pdfCreat Shape classes from scratch DETAILS You will create 3 shape cla.pdf
Creat Shape classes from scratch DETAILS You will create 3 shape cla.pdf
 
RECURSION IN C
RECURSION IN C RECURSION IN C
RECURSION IN C
 
Recursion in C
Recursion in CRecursion in C
Recursion in C
 

Último

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 

Último (20)

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

Applying SOLID Principles