Les modèles de conception rendent le code de votre application plus modulaire et plus indulgent en ce qui concerne les corrections de bugs et les modifications. Dans cet article, vous en apprendrez davantage sur les modèles de conception MVC (Model-View-Controller) et MVVM (Model-View-ViewModel)..
Bien que les modèles de conception (également appelés modèles architecturaux) soient la clé du développement d'applications Cocoa Touch évolutives, il existe de nombreuses controverses autour du choix du modèle architectural le mieux adapté à votre application..
Consultez ces articles récents de Bart Jacobs sur MVC et MVVM pour davantage de perspectives sur ces modèles de conception et sur le choix entre eux..
La collection d'objets d'un certain [motif architectural] dans une application est parfois appelée couche, par exemple couche modèle. - Pomme
Sans plus tarder, examinons quelques-uns des modèles de conception que vous pourrez utiliser dans votre prochaine application..
C'est le motif le plus couramment utilisé dans le développement de Cocoa Touch, et c'est aussi mon préféré. Ce modèle de conception trie efficacement votre code en trois catégories (ou couches): le modèle, la vue et le contrôleur..
Avec ce motif de conception, vous pouvez modifier un calque sans affecter les autres calques du motif. Par exemple, si vous devez modifier la base de données, vous devez simplement supprimer le modèle et le remplacer sans avoir à modifier la vue ou le contrôleur. Ou si vous souhaitez modifier l'apparence d'une vue, vous n'avez pas à vous soucier de modifier le code de la base de données. Cela s'appelle "séparation des problèmes" et facilite le débogage, la maintenance et la réutilisation de votre code..
En outre, il s'agit du modèle de conception recommandé par Apple et qui constitue une norme dans la communauté de développement iOS. Si vous débutez, je vous recommande vivement de vous en tenir à ce modèle. Vous pouvez essayer différents modèles de conception plus tard dans votre carrière de développement de cacao.
Examinons de plus près les différentes couches de ce motif et la responsabilité de chacune d’elles. Voici un diagramme rapide des interactions entre les couches:
Le modèle de conception MVC sépare chaque partie de votre code en une des trois parties suivantes: le modèle, la vue et le contrôleur..
Une chose à garder à l'esprit est qu'il ne faut pas confondre trop de responsabilités dans l'une ou l'autre de ces couches car cela irait à l'encontre du but du motif de conception.!
En outre, si vous ne maintenez pas les connexions entre les couches nettes et claires, vous obtiendrez une application désordonnée et indescriptible, malgré l'utilisation du modèle de conception MVC! En particulier, assurez-vous de ne pas laissez la vue et le modèle communiquer directement. Ces interactions doivent se produire uniquement via le contrôleur.
Bien que le modèle de conception Modèle-Vue-Contrôleur soit assez commun et qu'il fonctionne dans la plupart des cas, il présente son propre ensemble de défis et d'inconvénients. Pour cette raison, nous avons un autre modèle de conception appelé MVVM, qui signifie Model-View-ViewModel..
Eh bien, il y a un problème majeur dont vous devriez être au courant. Comme vous l'avez vu dans la section précédente, la couche Contrôleur est la seule couche entre la vue et le modèle. Il n'est donc pas surprenant que les utilisateurs abusent de cette couche et lui donnent rapidement trop de tâches à faire. Cela peut sembler la chose la plus facile à faire à ce moment-là, car cela évite de changer les autres couches, mais finit par conduire à un contrôleur saturé et à un code difficile à gérer..
Cela a conduit à donner à MVC le surnom fantaisiste "Massive-View-Controller" dans certains cercles.
Le modèle architectural MVVM, emprunté par Microsoft aux développeurs Cocoa, peut aider à lutter contre ce problème de contrôleurs de vue volumineux. Bien que cela ne soit pas aussi courant dans le développement iOS que MVC, il est de plus en plus utilisé pour compenser les faiblesses de MVC..
Examinons les différentes couches et leurs responsabilités dans MVVM. (Vous devriez probablement noter que dans la communauté Cocoa, il n'y a pas de directives formelles sur l'utilisation de ces couches.)
Voici un rapide diagramme montrant les couches de ce motif architectural et leurs connexions les unes aux autres.
Si vous y réfléchissez, vous verrez que même si les vues et les contrôleurs sont des calques distincts dans le modèle de conception MVC, ils sont très étroitement couplés. Donc, dans MVVM, nous prenons simplement la vue et le contrôleur et les combinons en une couche.
Comparons chaque couche à sa contrepartie dans le modèle MVC.
Comme vous l'avez vu précédemment, vous ne devez pas associer les responsabilités de l'une de ces couches, car cela pourrait entraîner une complexité accrue du code de votre application, rendant l'utilisation de tout modèle de conception superflue..
J'espère que vous avez aimé en apprendre davantage sur ces modèles de conception fondamentaux pour iOS. Espérons que vous avez acquis une meilleure compréhension des modèles de conception MVC et MVVM et que vous êtes suffisamment confiant pour les utiliser dans vos futures applications..
Bien entendu, le modèle architectural que vous utilisez pour votre application dépend entièrement du type d'application que vous essayez de développer. Toutefois, si vous débutez dans le développement iOS, je vous recommande fortement de vous en tenir au modèle de conception MVC, car il reste le plus courant dans le développement de Cocoa..
Pendant que vous êtes toujours là, assurez-vous de consulter certains de nos autres tutoriels et articles ici sur Envato Tuts+!