2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
"Les soldats n'ont pas d'élan constant et l'eau n'a pas de forme constante. Ceux qui peuvent gagner grâce aux changements chez l'ennemi sont appelés dieux."
Sur le champ de bataille des Trois Royaumes, les tactiques de guerre étaient comme des échecs et les formations étaient pittoresques. La formation d'échecs en cinq couleurs de Cao Cao ne reflète-t-elle pas parfaitement le modèle de méthode d'usine dans la conception de logiciels d'aujourd'hui ? Utilisons cette méthode de formation magique pour découvrir le mystère du modèle de méthode d'usine.
Les drapeaux à cinq couleurs divisaient les troupes en formations,
Les huit cadenas dorés sont à votre disposition.
La méthode d'usine crée une légion,
Soyez flexible et changez l’avenir.
Au cours de la treizième année de Jian'an, Cao Cao et Ma Chao se retrouvèrent dans une impasse à Weinan. Ma Chao était courageux et bon au combat, mais l'armée de Cao a subi des défaites répétées. Un jour, Cao Cao était assis seul dans sa tente, face à la table de sable et réfléchissant longuement.
"Monseigneur, avez-vous de bonnes idées?", A demandé le conseiller militaire Xun You.
Cao Cao leva lentement la tête, les yeux brillants : « J'ai pensé à une formation appelée « Formation d'échecs à cinq couleurs ». Cette formation est divisée en cinq parties, disposées sur la base du principe de génération mutuelle et de retenue mutuelle des cinq éléments. ".
Xun Vous avez dit curieusement : « Monseigneur, s'il vous plaît, soyez clair.
Cao Cao a sorti les pièces d'échecs à cinq couleurs et les a disposées sur la table de sable : « Or, bois, eau, feu et terre, les cinq éléments se complètent. Les pièces d'échecs de chaque couleur représentent un type d'armée et peuvent changez de position à tout moment. Ce que l’ennemi voit est toujours une formation changeante. Mais il est difficile de comprendre le mystère.
Xun Vous avez soudainement réalisé : « Comme c'est merveilleux ! Ces cinq armes sont comme cinq usines, qui peuvent produire les troupes dont nous avons besoin à tout moment.
Cao Cao hocha la tête : "C'est vrai. L'or est responsable de la mort, le bois est responsable de la croissance, l'eau est responsable de la sagesse, le feu est responsable de la puissance et la terre est responsable de la défense. Face à une bataille, vous pouvez vous adapter aux changements et vous adapter aux conditions de l’ennemi. »
Le lendemain, Cao Cao a présenté une formation d'échecs à cinq couleurs. Ma Chao a mené son armée à l'attaque, mais a vu que la formation de l'armée de Cao était imprévisible, incapable d'attaquer et incapable de se défendre, et est finalement revenu vaincu.
Le modèle Factory Method définit une interface pour créer des objets, mais c'est à la sous-classe de décider quelle classe instancier. Les méthodes d'usine permettent à une classe de différer l'instanciation vers les sous-classes.
La formation d'échecs à cinq couleurs de Cao Cao est similaire au modèle de méthode d'usine :
Comprenons la structure du modèle Factory Method à l'aide d'un diagramme de classes :
Utilisons Java pour implémenter ce système de disposition d'échecs en cinq couleurs :
// 军队单位接口
interface Unit {
void attack();
void defend();
}
// 军队工厂接口
interface ArmyFactory {
Unit createUnit();
}
// 具体军队单位
class Cavalry implements Unit {
public void attack() { System.out.println("骑兵发起冲锋!"); }
public void defend() { System.out.println("骑兵列阵防守!"); }
}
class Archer implements Unit {
public void attack() { System.out.println("弓箭手放箭!"); }
public void defend() { System.out.println("弓箭手设防!"); }
}
class Scout implements Unit {
public void attack() { System.out.println("斥候发动偷袭!"); }
public void defend() { System.out.println("斥候隐蔽!"); }
}
class Infantry implements Unit {
public void attack() { System.out.println("步兵发起进攻!"); }
public void defend() { System.out.println("步兵筑起盾墙!"); }
}
class Guardian implements Unit {
public void attack() { System.out.println("守卫进行反击!"); }
public void defend() { System.out.println("守卫加强防御!"); }
}
// 具体军队工厂
class GoldArmyFactory implements ArmyFactory {
public Unit createUnit() { return new Cavalry(); }
}
class WoodArmyFactory implements ArmyFactory {
public Unit createUnit() { return new Archer(); }
}
class WaterArmyFactory implements ArmyFactory {
public Unit createUnit() { return new Scout(); }
}
class FireArmyFactory implements ArmyFactory {
public Unit createUnit() { return new Infantry(); }
}
class EarthArmyFactory implements ArmyFactory {
public Unit createUnit() { return new Guardian(); }
}
// 曹操的五色棋布阵
class FiveColorChessFormation {
private ArmyFactory[] factories;
public FiveColorChessFormation() {
factories = new ArmyFactory[] {
new GoldArmyFactory(),
new WoodArmyFactory(),
new WaterArmyFactory(),
new FireArmyFactory(),
new EarthArmyFactory()
};
}
public void deployTroops() {
System.out.println("曹操:部署五色棋布阵!");
for (ArmyFactory factory : factories) {
Unit unit = factory.createUnit();
unit.attack();
unit.defend();
}
}
}
// 主类
public class FactoryMethodPatternDemo {
public static void main(String[] args) {
FiveColorChessFormation caoCaoFormation = new FiveColorChessFormation();
caoCaoFormation.deployTroops();
}
}
曹操:部署五色棋布阵!
骑兵发起冲锋!
骑兵列阵防守!
弓箭手放箭!
弓箭手设防!
斥候发动偷袭!
斥候隐蔽!
步兵发起进攻!
步兵筑起盾墙!
守卫进行反击!
守卫加强防御!
Grâce à la formation d'échecs en cinq couleurs de Cao Cao, nous pouvons voir plusieurs avantages clés du modèle de méthode d'usine :
La formation d'échecs à cinq couleurs de Cao Cao démontre non seulement ses superbes talents militaires, mais nous révèle également l'essence du modèle de méthode d'usine. Dans le développement de logiciels, le modèle de méthode d'usine est largement utilisé dans de nombreux domaines tels que la conception de frameworks, les systèmes de plug-ins et les applications configurables.
Tout comme Cao Cao a pu distribuer de manière flexible différentes armes en fonction de la situation de combat, notre système logiciel peut également atteindre la flexibilité et l'évolutivité dans la création d'objets grâce au modèle de méthode d'usine. En maîtrisant ce modèle de conception, nous pouvons rester invincibles sur le champ de bataille de l’architecture logicielle et rester inchangés face aux changements en constante évolution.
Texte original de référence :https://offernow.cn
Assistant d'apprentissage de l'IA :https://aistar.cool