[PYTHON] Articles pour guitaristes et bassistes pour bien comprendre l'orientation des objets

Articles pour guitaristes et bassistes pour bien comprendre l'orientation des objets

introduction

Ravi de vous rencontrer, je m'appelle Sotoku. C'est le premier message de Qiita. Je vis habituellement sur Twitter et j'écris gentiment Python, etc. D'ailleurs, cet article est un article de commentaire orienté objet pour guitaristes et bassistes </ b> comme son titre l'indique. Si vous n'avez qu'une seule expérience, vous vous demandez peut-être "Quoi?", Mais en fait, il y a un point commun très facile à comprendre entre jouer de la guitare et de la basse et l'orientation objet, je vais donc l'expliquer cette fois. J'aimerais pouvoir y aller. De plus, dans cet article, je ne comprends pas entièrement *** l'orientation des objets ***, la fraude au titre, et je le regrette sincèrement. Le but est d'expliquer d'une manière facile à comprendre pour les débutants, et comme je ne suis pas en mesure de me comprendre pleinement, l'article peut être plein d'erreurs, mais dans ce cas, j'apprécierais que vous puissiez le signaler doucement. est.

Qui est la cible de cet article

  • Guitariste
  • Bassiste
  • Les gens qui ne comprennent pas du tout l'orientation des objets

Personnes non couvertes par cet article

  • Les gens qui ne comprennent pas du tout l'instrument
  • Quelqu'un qui a une compréhension complète de l'orientation des objets

Qu'est-ce que l'orientation objet?

Selon wikipedia

L'orientation objet est l'un des concepts du génie logiciel et est un concept ou un concept utilisé dans la conception de logiciels et la description de programmes.

... Apparemment ... Comme vous pouvez le voir ici, l'orientation objet est, grosso modo, une façon de penser en programmation. Comme nous le verrons plus loin, cette idée est souvent très utile dans la conception et le développement d'équipe. De plus, ce qu'on appelle un langage orienté objet, en particulier Java, est un langage très orienté objet, et il échoue souvent à être implémenté sans une certaine compréhension. (On oublie souvent que Python est aussi un langage orienté objet, j'écris principalement Python, donc j'utiliserai Python quand je l'expliquerai en code dans cet article.) Plus précisément, l'idée est de diviser grossièrement la situation réelle qui atteint un certain objectif </ b> en plusieurs objets pour atteindre l'objectif </ b> et l'implémenter. je comprends Par exemple, lors de la mise en œuvre d'une application de calculatrice, elle est décomposée individuellement en un objet qui reçoit une entrée, un objet qui génère des résultats de calcul à partir de l'entrée (cela est également divisé en fonction du contenu de calcul souhaité) et un objet qui renvoie la sortie. L'image est de l'implémenter et de la remonter à la fin.

Points communs avec les instruments de musique

Après avoir lu jusqu'ici, vous pourriez penser que les guitaristes et le bassiste sont en quelque sorte similaires à que </ b>. Oui, cela </ b> cela </ b>. *** Effecteur ***. En tant qu'effecteur, amplificateur, guitare ou guitariste, vous pouvez vous considérer comme un objet indépendant </ b>, tel que le traitement du son, l'entrée et la sortie. Maintenant, écrivons votre tableau d'effecteur de manière orientée objet pour le rendre plus facile à comprendre. (Le code ci-dessous ne fonctionne pas vraiment, c'est une démo pour le rendre plus facile à comprendre.)

Disons que votre guitare est Mustang et que l'effecteur est Bruce Driver et Metal Zone. L'amplificateur est Jazzco. Supposons que vous souhaitiez utiliser ces objets pour enfin implémenter une fonctionnalité qui "renvoie une belle sortie pour le son d'entrée". En orientation objet, écrivez comme ceci.

Sound.py


#Cours de guitare
class Musutang:
    @staticmethod
    def pickup('''Quelque chose a tiré le son'''):
        #Traitement pour amplifier et restituer le son
        return cleansound #Ton clair

#Cours de base effecteur
class Effector:
    #Ecrire la structure de base de l'effecteur
    @staticmethod
    def Efect('''Son entrant'''):
        #Traitement de base des effecteurs

#Une classe qui prend le dessus sur la classe effectrice
class BluesDriver(Effector):
    #Passer outre
    @staticmethod
    def Effect('''Son entrant'''):
        #Traitement pour rendre le son cool
        return bluessound

class MetalZone(Effector):
    #Passer outre
    @staticmethod
    def Effect('''Son entrant'''):
        #Traitement pour transformer le son
        return metalsound

#Classe d'ampli
class amp:
    @staticmethod
    def JazzChorus('''Son entrant'''):
        #Traitement pour amplifier et restituer le son
        return mixedsound #Enfin le son sortant de l'ampli


#Une méthode qui déplace en fait une combinaison de classes
def main():
    sound = input()
    clean = Musutang.pickup(sound)
    blues = BlusesDriver.Effect(clean)
    metal = MetalZone.Effect(blues)
    mixed = amp.JazzChorus(metal)

    return mixed

#la magie
if __name__ == '__main__':
    main()

C'est un bon code sans normes de codage ni merde, mais je pense que vous pouvez vous en faire une idée. Lors de sa mise en œuvre, écrivez une autre fonction dans un autre fichier et appelez-la en utilisant l'importation, etc.

Ce qui me rend heureux

Orienté objet vous permet d'affecter des experts par fonction, par exemple lors de la mise en œuvre. Dans l'exemple de la guitare, vous ne connaissez souvent pas la structure interne d'un effecteur ou d'un amplificateur. Mais vous avez la possibilité de jouer de la guitare (donner des instructions). En revanche, le créateur de l'effecteur ne doit pas forcément être un guitariste, mais un professionnel du circuit. De cette façon, si tout le monde ne crée que des fonctions qu'ils peuvent créer </ b> sans connaître les domaines d'expertise de l'autre, une carte effectrice ou un système qui peut enfin produire un bon son est complété. On considère que l'avantage de l'orientation objet est de faire. Il existe de nombreux autres avantages, tels qu'une meilleure visibilité de l'ensemble du code et des ajouts et améliorations plus faciles. Pourquoi vous, guitariste, ne saisissez-vous pas cette opportunité pour commencer la programmation orientée objet?