-
Notifications
You must be signed in to change notification settings - Fork 1
/
01_04_LSP.html
121 lines (90 loc) · 4 KB
/
01_04_LSP.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title>Principio de Sustitucion de Liskov</title>
<link rel="stylesheet" href="./css/reveal.css" />
<link rel="stylesheet" href="./css/theme/league.css" id="theme" />
<link rel="stylesheet" href="./css/highlight/zenburn.css" />
<link rel="stylesheet" href="./css/print/paper.css" type="text/css" media="print" />
<link rel="stylesheet" href="./_assets/slides/css/filminas.css" />
</head>
<body>
<div class="reveal">
<div class="slides"><section data-markdown><script type="text/template">
# Principios de Diseño SOLID
## Principio de Sustitución de Liskov
<small>
Created by <br />
[rmarku]("https://t.me/rmarku") <i class="fab fa-telegram"></i>
</small>
</script></section><section data-markdown><script type="text/template">
### Principio de Sustitución de Liskov
_"Subtype Requirement: Let ϕ(x) be a property provable about objects x of type T. Then ϕ(y) should be true for objects y of type S where S is a subtype of T. "_
Barbara Liskov
</script></section><section data-markdown><script type="text/template">
![Principios Solid](images/solid/principio-sustitucion-liskov-meme.jpg)
</script></section><section data-markdown><script type="text/template">
### Principio de Sustitución de Liskov
* Una clase derivada puede ser reemplazada por cualquier otra que use su clase base sin alterar su correcto funcionamiento.
* Polimorfismo
</script></section><section data-markdown><script type="text/template">
### Principio de Sustitución de Liskov
#### ¿Sobre qué artefactos aplica este principio?
* Clases
#### ¿Qué beneficios trae el trabajar con este principio?
* Flexibilidad
* Mantenimiento, sistemas fáciles de cambiar y evolucionar.
</script></section><section data-markdown><script type="text/template">
### Principio de Sustitución de Liskov
#### ¿Cuándo debemos aplicar este principio?
* Cuando se quiere extender el funcionamiento usando clases derivadas sin tocar el código base.
* Cuando existan clases que compartan el mismo comportamiento.
* Cuando aplicamos el principio Open Closed.
</script></section><section data-markdown><script type="text/template">
# Demo</script></section></div>
</div>
<script src="./js/reveal.js"></script>
<script>
function extend() {
var target = {};
for (var i = 0; i < arguments.length; i++) {
var source = arguments[i];
for (var key in source) {
if (source.hasOwnProperty(key)) {
target[key] = source[key];
}
}
}
return target;
}
// Optional libraries used to extend on reveal.js
var deps = [
{ src: './plugin/markdown/marked.js', condition: function() { return !!document.querySelector('[data-markdown]'); } },
{ src: './plugin/markdown/markdown.js', condition: function() { return !!document.querySelector('[data-markdown]'); } },
{ src: './plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } },
{ src: './plugin/zoom-js/zoom.js', async: true },
{ src: './plugin/notes/notes.js', async: true },
{ src: './plugin/math/math.js', async: true }
];
// default options to init reveal.js
var defaultOptions = {
controls: true,
progress: true,
history: true,
center: true,
transition: 'default', // none/fade/slide/convex/concave/zoom
dependencies: deps
};
// options from URL query string
var queryOptions = Reveal.getQueryHash() || {};
var options = extend(defaultOptions, {"controls":true,"progress":true,"slideNumber":true}, queryOptions);
</script>
<script src="./_assets/slides/js/pruebas.js"></script>
<script src="./_assets/slides/js/init.js"></script>
<script>
Reveal.initialize(options);
</script>
</body>
</html>