Principe d'inversion de dépendance en JAVA
L'un des principes les plus fondamentaux du droit américain est « tout le monde est égal ». Nous ne nous soucions pas du type de lutte ou d'effusion de sang grâce auquel cela a été obtenu. Nous le comprenons uniquement comme une méthode JAVA, qui est définie comme suit :
public final booléen tout le monde est égal (personne 1, personne 2) {
renvoie vrai ;
}
Bien que les lois de chaque État puissent être différentes, comme la Loi fondamentale des États-Unis, New York peut être appelée la Loi fondamentale de New York. Elles devraient avoir une telle relation : la Loi fondamentale de New York hérite de la Loi fondamentale des États-Unis. States, mais ne permet pas de réécrire cette méthode.
En ce qui concerne l'application des lois à New York, les éléments suivants sont utilisés :
Loi fondamentale des États-Unis = nouvelle loi fondamentale de New York
Appeler la méthode « tout le monde est égal » n'importe où renverra « vrai », ce qui signifie que le principe de l'égalité de tous ne peut être modifié nulle part. Il s'agit d'une décision macro qui détermine le micro, et elle ne changera pas entre les hommes et les femmes à cause du Nouveau. York. L'inégalité des femmes.
Par exemple, un certain pays dispose également d’une loi fondamentale et d’une méthode d’égalité pour tous. La définition devrait être la suivante :
public booléen tout le monde est égal (personne 1, personne 2) {
renvoie vrai ;
}
Par exemple, un certain endroit dans un certain pays a également une loi fondamentale. La loi fondamentale d'un certain endroit est également héritée de la loi fondamentale d'un certain pays. Cependant, parce que la méthode « tous sont égaux » n'est pas définitive, il peut être réécrit Lorsqu'il est implémenté à un certain endroit, il peut être :
Loi fondamentale d'un certain pays = nouvelle loi fondamentale d'un certain lieu
ou
Loi fondamentale d'un certain lieu = nouvelle loi fondamentale d'un certain lieu
Peut-être que lorsque la Loi fondamentale d'un certain endroit a hérité de la Loi fondamentale d'un certain pays, la méthode « tout le monde est égal » a été réécrite et modifiée comme suit :
public booléen tout le monde est égal (personne 1, personne 2) {
if(personne 1==personne d'un certain endroit&& personne 2==personne d'un certain endroit){
if(la personne 1 et la personne 2 ont les mêmes attributs){
if(la personne 1 et la personne 2 sont identiques sauf qu'elles ne sont pas la même personne){
si (personne d'autre n'arrive) {
renvoie vrai ;
}autre{
renvoie faux ;
}
}autre{
renvoie faux ;
}
}autre{
renvoie faux ;
}
}autre{
renvoie faux ;
}
}
Parlons du principe d'inversion de dépendances, selon "JAVA and Patterns" :
Le niveau abstrait contient la logique métier du système d'application et les décisions stratégiques au niveau macro qui sont importantes pour l'ensemble du système et reflètent l'inévitabilité ; tandis que le niveau concret contient quelques algorithmes et logiques mineurs liés à la mise en œuvre, ainsi que des éléments tactiques. la décision implique des chances considérables. Des niveaux de code spécifiques changeront fréquemment et les erreurs ne pourront être évitées. Le niveau d'abstraction dépend du niveau de concret. Les changements d'algorithme utilisant des détails à un niveau spécifique affectent immédiatement la logique métier macroscopique au niveau d'abstraction, amenant le microscopique à déterminer le macroscopique, les tactiques à déterminer la stratégie et le hasard à déterminer la nécessité. C'est ridicule.
Après avoir lu ceci, vous comprendrez pourquoi vous devriez l'utiliser plus souvent lors de l'écriture de code à l'avenir :
logique abstraite = nouvelle logique concrète
Utilisez le moins possible :
logique spécifique = nouvelle logique spécifique
C’est la programmation orientée interface qui est actuellement préconisée. Voici un autre exemple pratique de programmation orientée interface :
Vous devriez généralement utiliser List plus souvent. List elle-même est une interface héritée de Collection. Vous pouvez l'utiliser comme ceci :
Liste liste = nouveau vecteur ();
La List déclarée de cette manière est en fait un type Vector, car Vector est sa sous-classe. Selon le principe de substitution de Liskov, les sous-classes peuvent être acceptées partout où la classe parent peut être acceptée. A ce moment, la Liste est synchronisée, et bien sûr elle sera affectée par certaines performances. Si vous passez à un environnement qui ne nécessite pas de synchronisation à l'avenir, il vous suffit de modifier le code ci-dessus comme suit :
Liste list=nouveau ArrayList();
Aucun autre code ne doit être modifié. Le type réel de List à l'heure actuelle est ArrayList.
À partir de là, nous pouvons comprendre pourquoi la programmation orientée interface est appréciée par les concepteurs, car après avoir fourni l'interface, les implémenteurs implémentent des classes spécifiques basées sur l'interface, et il n'y a pas lieu de s'inquiéter du fait que les implémenteurs détruisent l'intégrité de l'original. programme, et les concepteurs ne se soucieront jamais uniquement des méthodes de l'interface, ne vous inquiétez pas des méthodes auxiliaires de la classe concrète. Mais cela entraîne un coût supplémentaire, comme l'ajout de classes JAVA. Si les classes abstraites peuvent apporter moins d'efficacité, il est préférable d'utiliser un couplage concret, comme les classes d'outils.