[JAVA] Essayez d'organiser votre propre orientation d'objet

Au début

Après avoir recherché diverses choses dans l'histoire de la conception de classe, je suis progressivement revenu en arrière et suis arrivé à l'orientation objet. À ce moment-là, j'ai réalisé que l'orientation de l'objet n'était pas vraiment en forme. Puisque l'orientation objet est une «idée», peut-elle être définie avec précision en premier lieu? Il y a une question, mais pour le moment, j'ai décidé de l'organiser facilement à ma manière.

Principes orientés objet

Il y a trois principes qui reviennent toujours lorsque vous recherchez l'orientation objet de Google. · Encapsulation ・ Héritage ・ Polymorphisme

Encapsulation

L'encapsulation "se cache". Que signifie le cacher? Alors comparons-le à une voiture.

Il y a différentes pièces à l'intérieur de la voiture. Le conducteur peut conduire la voiture sans connaître les pièces une par une. Ce que le conducteur doit savoir ・ Appuyer sur l'accélérateur = augmenter la vitesse ・ Appuyer sur le frein = réduire la vitesse Tout ce que vous avez à faire est de connaître la "méthode de conduite" telle que. En d'autres termes, il vous suffit de cacher les mouvements compliqués à l'intérieur et de savoir comment l'utiliser facilement.

L'important ici est que chaque partie soit minutieuse dans son rôle. Si l'accélérateur déplace l'essuie-glace ou est gêné par les freins et n'accélère pas même si l'accélérateur est enfoncé, ce ne sera pas une voiture.

En termes de programmation, les «classes (parties)» ont un rôle indépendant et devraient être «faciles à utiliser» sans comprendre leur contenu. Je peux stocker des valeurs dans une liste sans savoir ce qu'ArrayList.add est implémenté.

Héritage

L'héritage est «standardisation / abstraction».

Comparons-le à nouveau avec une voiture. Il existe différents types de voitures telles que les voitures légères, les berlines et les camions. Et toutes les voitures ont quelque chose en commun, comme «courir» et «transporter des gens». En d'autres termes, le standard de la voiture peut avoir des propriétés communes.

En termes de programmation, cela correspond à la relation parent-enfant d'une interface ou d'une classe. L'héritage en java est souvent utilisé pour hériter des méthodes de la classe parent. Cependant, ce n'est qu'une fonction, et je pense que l'important est l'idée de "standardiser / abstraire" les mêmes propriétés ensemble. Une source bien normalisée doit être clairement visible, avec quelques correctifs pour les ajouts et modifications de fonctionnalités.

Polymorphisme

Le polymorphisme est appelé polymorphisme, ce qui signifie que la même méthode fonctionne différemment. Ceci est réalisé en programmant réellement ce qui a été normalisé dans l'héritage ci-dessus.

Par rapport à ce qui précède, il existe différents types de voitures. Le fabricant et le type de moteur changeront en fonction du type. Cependant, le pilote peut faire fonctionner les différents moteurs installés sans en avoir conscience. En effet, il implémente le comportement qui convient à chaque moteur pour la même méthode de «démarrage du moteur».

En d'autres termes, Car.startEngine aura un polymorphisme en implémentant diverses implémentations du côté de l'héritage.

Résumé

Je pense que l'idée d'être conscient du principe de trois générations ci-dessus conduit à l'orientation objet. En étant conscient de l'orientation des objets, vous pouvez écrire des sources hautement indépendantes et flexibles. Je pense que cela rendra la source plus facile à modifier et plus lisible.

J'étais plutôt rafraîchi en m'organisant en écrivant à ma manière. Bien sûr, je ne pense pas que vous puissiez immédiatement programmer consciemment simplement en comprenant le concept. Vous pourrez l'acquérir en étudiant les modèles de conception et en accumulant une expérience de conception. Je continuerai de faire de mon mieux!

Je vais l'écrire facilement pendant longtemps. Je vous remercie!

Au fait

Alan Kay, le créateur du mot, dit que le mot orienté objet est un échec. Ce qu'il faut souligner, ce n'est pas "objet" mais "message" ... [Wikipedia orienté objet](https://ja.wikipedia.org/wiki/Object Oriented)

référence

Qu'est-ce que l'orientation objet? J'ai essayé d'expliquer avec un exemple facile à comprendre. Ce que j'ai appris après avoir combattu l'orientation objet pendant 10 ans Qu'est-ce que la programmation orientée objet

Recommended Posts

Essayez d'organiser votre propre orientation d'objet
J'ai essayé de résumer l'orientation de l'objet à ma manière.
Java: essayez d'implémenter vous-même un formateur séparé par des virgules
Ce qu'un débutant a fait pour comprendre l'orientation des objets
A propos de l'orientation des objets
[Mémo personnel] J'ai essayé d'étudier légèrement l'orientation des objets
Essayez de libérer la gemme
Qu'est-ce que l'orientation objet?
Faites votre propre pomodoro
19 Correspond à la création d'objet
Comment utiliser la méthode getter / setter (en orientation objet)
Comment lire votre propre fichier YAML (*****. Yml) en Java
[Forge] Comment enregistrer votre propre Entité et Entité Render dans 1.13.2