Les quatre piliers de la programmation orientée objet
On septembre 27, 2021 by adminDans ce blog, je vais expliquer les 4 piliers de la POO et fournir de petits exemples. Des exemples assez petits que vous et moi pouvons comprendre facilement.
L’abstraction est essentiellement un « besoin de savoir ». Nous cachons les principaux détails de mise en œuvre, tout en gardant l’utilisation évidente au premier plan. Donc, souvenez-vous de ce « cacher les détails, montrer la pertinence ».
Exemple d’abstraction…
C’est un formulaire d’inscription d’une application sur laquelle je travaille (la pertinence).
C’est la logique de mise en œuvre de la soumission du formulaire. (le besoin de savoir).
Polymorphisme
Le polymorphisme est lorsque vous utilisez un bloc de code, vous changez la version du code utilisé en fonction des entrées qui lui sont données. Donc, pour être un peu plus clair, différentes classes peuvent être utilisées avec la même interface mais peuvent fournir sa propre implémentation de cette interface.
Exemple de polymorphisme…
class Animal { speak = () => console.log('makes sound')}class Dog extends Animal { speak = () => console.log('woof')}class Cat extends Animal { speak = () => console.log('meowww')}class Cow extends Animal { speak = () => console.log('moooooo')}let dog1 = new Dog()let cat1 = new Cat()let cow1 = new Cow()dog1.speak() // => woofcat1.speak() // => meowwwcow1.speak() // => moooooo
Les classes Chat, Chien, et Vache héritent de la classe Animal. Cela permet à la classe Cat, Dog, et Cow d’utiliser l’interface de la classe Animal. Elles n’ont cependant que la méthode speak à leur disposition. Si nous devions laisser la méthode speak hors de la classe Cat, Dog, and Cow, et créer des instances de la classe Cat, Dog, and Cow, nous serions toujours en mesure d’appeler la méthode speak sur ces instances. Le seul problème est que cela imprimerait les animaux ‘fait du son’ au lieu des sons appropriés que font un chat, un chien et une vache (‘meow’, ‘woof’, ‘moo’).
C’est là que la méthode overriding entre en jeu. Si nous redéfinissons la méthode speak dans les classes Cat, Dog, and Cow, nous pouvons la personnaliser pour imprimer les sons que font les chats et les chiens.
Encapsulation
L’encapsulation lie ensemble les données et les fonctions qui manipulent les données, et cela garde les deux à l’abri des interférences extérieures et des mauvais usages. Un bon exemple d’encapsulation est une classe. Nous pouvons en fait nous référer à l’exemple ci-dessus où nous parlons des chiens, des chats et des vaches avec quelques légères modifications.
class Dog { constructor(name) { this.name = name } printName = () => console.log(this.name)}class Cat { constructor(name) { this.name = name } printName = () => console.log(this.name)}class Cow { constructor(name) { this.name = name } printName = () => console.log(this.name)}let dog1 = new Dog()dog1.name = "Max"dog1.printName() // => Maxlet cat1 = new Cat()cat1.name = "Mark"cat1.printName() // => Marklet cow1 = new Cow()cow1.name = "Tom"cow1.printName() // => Tom
Notez que lorsque nous créons des instances pour chaque animal, nous attribuons également un nom à chacun. Le point à retenir ici est que les ‘.name’ après chaque instance créée (i.e dog1.name) sont tous différents. Ces ‘.name’ sont encapsulés dans leurs classes respectives. L’attribution d’un nom à une instance ne modifie pas la valeur du nom des autres instances.
Héritage
L’héritage est probablement le plus facile à saisir. L’héritage est le concept d’une classe utilisant(héritant) l’interface d’une autre classe. Elle devient alors un enfant ou une sous-classe tandis que la classe dont elle hérite est le parent ou la super-classe. Nous avons en fait hérité de certaines classes dans notre deuxième exemple ci-dessus. Les classes Cat, Dog et Cow héritent de la classe Animal afin d’avoir accès à la méthode speak. Assurez-vous simplement d’ajouter le mot-clé extends.
Laisser un commentaire