224 votes

Qu'est ce qu'un anti-modèle?

Je suis l'étude de modèles et anti-modèles. J'ai une idée précise sur les schémas, mais je ne suis pas d'avoir des anti-Modèles. Web les Définitions de Wikipédia, est source de confusion pour moi. Quelqu'un peut-il m'expliquer en mots simples que ce qu'un anti-modèle? Quel est le but? Que font-ils? Est-ce une mauvaise chose ou une bonne chose?

285voto

coobird Points 70356

Les Anti-modèles sont certains des modèles dans le développement de logiciels qui est considéré comme une mauvaise pratique.

Par opposition à des modèles de conception qui sont des approches communes à des problèmes communs qui ont été officialisée, et sont généralement considérés comme une bonne pratique de développement des anti-modèles sont à l'opposé et sont indésirables.

Par exemple, dans la programmation orientée objet, l'idée est de séparer le logiciel en petits morceaux appelés objets. Un anti-modèle de programmation orientée objet est un Dieu de l'objet qui remplit beaucoup de fonctions qui serait le mieux séparés en différents objets.

Par exemple:

class GodObject {
    function PerformInitialization() {}
    function ReadFromFile() {}
    function WriteToFile() {}
    function DisplayToScreen() {}
    function PerformCalculation() {}
    function ValidateInput() {}
    // and so on... //
}

L'exemple ci-dessus a un objet qui n'est tout. En programmation orientée objet, il serait préférable d'avoir des responsabilités bien définies pour les différents objets de conserver le code moins couplée et finalement plus facile à gérer:

class FileInputOutput {
    function ReadFromFile() {}
    function WriteToFile() {}
}

class UserInputOutput {
    function DisplayToScreen() {}
    function ValidateInput() {}
}

class Logic {
    function PerformInitialization() {}
    function PerformCalculation() {}
}

Ligne du bas est, il ya de bonnes façons de développer des logiciels, et sont couramment utilisées patterns (patrons de conception), mais il existe également des moyens logiciels sont développés et mis en œuvre ce qui peut conduire à des problèmes. Les modèles qui sont considérées comme des mauvaises pratiques de développement logiciel sont des anti-modèles.

45voto

sharptooth Points 93379

Un modèle est une idée de comment résoudre un problème de classe. Un anti-modèle est une idée de comment ne pas le résoudre parce que la mise en œuvre de cette idée, seraient le résultat d'une mauvaise conception.

Un exemple: un "modèle" serait d'utiliser une fonction pour la réutilisation du code, un "anti-modèle" serait d'utiliser le copier-coller pour la même chose. À la fois résoudre le même problème, mais à l'aide d'une fonction entraîne généralement plus lisible et maintenable code à copier-coller.

15voto

kmarsh Points 828

Si vous voulez vraiment étudier AntiPatterns, obtenir le livre AntiPatterns (ISBN-13: 978-0471197133).

En cela, ils définissent "Un AntiPattern est une forme littéraire qui décrit une fréquentes solution à un problème qui génère décidément conséquences négatives."

Alors, si c'est une mauvaise programmation de la pratique, mais pas une commune limitée à une seule demande, une entreprise, ou un programmeur, il ne rencontre pas le "Modèle" de la AntiPattern définition.

7voto

Robert Gould Points 29406

Une façon courante de faire des dégâts. Comme le dieu/kitchensink classe (n'importe quoi), par exemple.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X