Some Design Pattern in .NET C#
-
Upload
gilang-aziz -
Category
Technology
-
view
437 -
download
0
description
Transcript of Some Design Pattern in .NET C#
![Page 1: Some Design Pattern in .NET C#](https://reader035.fdocuments.net/reader035/viewer/2022062418/5560c21cd8b42af43b8b552a/html5/thumbnails/1.jpg)
Gilang Abdul Aziz
![Page 2: Some Design Pattern in .NET C#](https://reader035.fdocuments.net/reader035/viewer/2022062418/5560c21cd8b42af43b8b552a/html5/thumbnails/2.jpg)
Singleton Pattern
![Page 3: Some Design Pattern in .NET C#](https://reader035.fdocuments.net/reader035/viewer/2022062418/5560c21cd8b42af43b8b552a/html5/thumbnails/3.jpg)
Singleton Pattern
Class hanya bisa diinstansiasi paling banyak 1 kali.
![Page 4: Some Design Pattern in .NET C#](https://reader035.fdocuments.net/reader035/viewer/2022062418/5560c21cd8b42af43b8b552a/html5/thumbnails/4.jpg)
Singleton Pattern
How?
![Page 5: Some Design Pattern in .NET C#](https://reader035.fdocuments.net/reader035/viewer/2022062418/5560c21cd8b42af43b8b552a/html5/thumbnails/5.jpg)
Singleton Pattern
Private Constructor
![Page 6: Some Design Pattern in .NET C#](https://reader035.fdocuments.net/reader035/viewer/2022062418/5560c21cd8b42af43b8b552a/html5/thumbnails/6.jpg)
Singleton Pattern
static method,Instance()
![Page 7: Some Design Pattern in .NET C#](https://reader035.fdocuments.net/reader035/viewer/2022062418/5560c21cd8b42af43b8b552a/html5/thumbnails/7.jpg)
Singleton Pattern
static method,Instance()
Private Constructor
![Page 8: Some Design Pattern in .NET C#](https://reader035.fdocuments.net/reader035/viewer/2022062418/5560c21cd8b42af43b8b552a/html5/thumbnails/8.jpg)
Singleton Pattern
static method,Instance()
Private Constructor
uniqueInstance NULL?new Singleton()
![Page 9: Some Design Pattern in .NET C#](https://reader035.fdocuments.net/reader035/viewer/2022062418/5560c21cd8b42af43b8b552a/html5/thumbnails/9.jpg)
Singleton Pattern
Example :
![Page 10: Some Design Pattern in .NET C#](https://reader035.fdocuments.net/reader035/viewer/2022062418/5560c21cd8b42af43b8b552a/html5/thumbnails/10.jpg)
Singleton Pattern
Example of use:
![Page 11: Some Design Pattern in .NET C#](https://reader035.fdocuments.net/reader035/viewer/2022062418/5560c21cd8b42af43b8b552a/html5/thumbnails/11.jpg)
Singleton Pattern
Example of use:
![Page 12: Some Design Pattern in .NET C#](https://reader035.fdocuments.net/reader035/viewer/2022062418/5560c21cd8b42af43b8b552a/html5/thumbnails/12.jpg)
![Page 13: Some Design Pattern in .NET C#](https://reader035.fdocuments.net/reader035/viewer/2022062418/5560c21cd8b42af43b8b552a/html5/thumbnails/13.jpg)
Factory Methods
![Page 14: Some Design Pattern in .NET C#](https://reader035.fdocuments.net/reader035/viewer/2022062418/5560c21cd8b42af43b8b552a/html5/thumbnails/14.jpg)
Factory Methods
Direct use of constructors is not flexible enough
In some situations
![Page 15: Some Design Pattern in .NET C#](https://reader035.fdocuments.net/reader035/viewer/2022062418/5560c21cd8b42af43b8b552a/html5/thumbnails/15.jpg)
Factory Methods
For example: Class Point (in earlier chapter)Wee need constructor for both Polar or Rectangular initialization
And it’s need 2 parameters.
![Page 16: Some Design Pattern in .NET C#](https://reader035.fdocuments.net/reader035/viewer/2022062418/5560c21cd8b42af43b8b552a/html5/thumbnails/16.jpg)
Factory Methods
And it’s SUX!
![Page 17: Some Design Pattern in .NET C#](https://reader035.fdocuments.net/reader035/viewer/2022062418/5560c21cd8b42af43b8b552a/html5/thumbnails/17.jpg)
How?
Factory Methods
![Page 18: Some Design Pattern in .NET C#](https://reader035.fdocuments.net/reader035/viewer/2022062418/5560c21cd8b42af43b8b552a/html5/thumbnails/18.jpg)
Private Constructor
Factory Methods
![Page 19: Some Design Pattern in .NET C#](https://reader035.fdocuments.net/reader035/viewer/2022062418/5560c21cd8b42af43b8b552a/html5/thumbnails/19.jpg)
Create Methods Who
Delegate their work to the private constructor
Factory Methods
![Page 20: Some Design Pattern in .NET C#](https://reader035.fdocuments.net/reader035/viewer/2022062418/5560c21cd8b42af43b8b552a/html5/thumbnails/20.jpg)
Factory Methods
![Page 21: Some Design Pattern in .NET C#](https://reader035.fdocuments.net/reader035/viewer/2022062418/5560c21cd8b42af43b8b552a/html5/thumbnails/21.jpg)
Example :Factory Methods
![Page 22: Some Design Pattern in .NET C#](https://reader035.fdocuments.net/reader035/viewer/2022062418/5560c21cd8b42af43b8b552a/html5/thumbnails/22.jpg)
Example :Factory Methods
![Page 23: Some Design Pattern in .NET C#](https://reader035.fdocuments.net/reader035/viewer/2022062418/5560c21cd8b42af43b8b552a/html5/thumbnails/23.jpg)
![Page 24: Some Design Pattern in .NET C#](https://reader035.fdocuments.net/reader035/viewer/2022062418/5560c21cd8b42af43b8b552a/html5/thumbnails/24.jpg)
Privacy Leaks
![Page 25: Some Design Pattern in .NET C#](https://reader035.fdocuments.net/reader035/viewer/2022062418/5560c21cd8b42af43b8b552a/html5/thumbnails/25.jpg)
Privacy Leaks
A method can return part of its private state, which can be mutated outside the object
![Page 26: Some Design Pattern in .NET C#](https://reader035.fdocuments.net/reader035/viewer/2022062418/5560c21cd8b42af43b8b552a/html5/thumbnails/26.jpg)
Privacy Leaks
And it’s COMPLICATED!
![Page 27: Some Design Pattern in .NET C#](https://reader035.fdocuments.net/reader035/viewer/2022062418/5560c21cd8b42af43b8b552a/html5/thumbnails/27.jpg)
Let’s see how it works :Privacy Leaks
![Page 28: Some Design Pattern in .NET C#](https://reader035.fdocuments.net/reader035/viewer/2022062418/5560c21cd8b42af43b8b552a/html5/thumbnails/28.jpg)
Let’s see how it works :
Privacy Leaks
![Page 29: Some Design Pattern in .NET C#](https://reader035.fdocuments.net/reader035/viewer/2022062418/5560c21cd8b42af43b8b552a/html5/thumbnails/29.jpg)
Let’s see how it works :
Privacy Leaks
![Page 30: Some Design Pattern in .NET C#](https://reader035.fdocuments.net/reader035/viewer/2022062418/5560c21cd8b42af43b8b552a/html5/thumbnails/30.jpg)
HORRAAY !!!
Gilang Abdul Aziz@Ltheordinary