Usar el lenguaje Delphi para aprender patrones de diseño: una fábrica simple
? El patrón de fábrica se divide en patrón de fábrica simple, patrón de método de fábrica y patrón de fábrica abstracto. El patrón de fábrica simple presentado aquí es el más simple. Si lo admite, continuaré publicando métodos de fábrica. ¡Los artículos siguientes, como patrón y patrón abstracto de fábrica, dependerán de su respuesta!
Aprender patrones de diseño requiere una cierta comprensión de la programación orientada a objetos, especialmente el polimorfismo. Si puedes entender el siguiente ejemplo, estarás bien. // ¡La clase Fruit es un producto abstracto TFruit = Class(TObject)! end;// Reificación de la clase de fruta de manzana TApple = class(TFruit) end;function Factory(): TFruit;varf:TFruit;begin //La esencia es esta declaración, que claramente crea el objeto TApple// Pero asígnalo a una variable de tipo TFruit//De hecho, me daré cuenta de los grandes beneficios de hacer esto más adelante f:=TAple Create(); result:=f;end
? Si no comprende bien la interfaz, puede tratarla como una clase abstracta, que es más abstracta que una clase abstracta. Para decirlo sin rodeos, trátela como una clase.
Esto es. la explicación
//Usamos un pequeño huerto para ilustrar lo que es una fábrica sencilla//Hay tres frutas en este huerto: uvas, manzanas y fresas//Todas las frutas tienen tres pasos de cultivo, cultivo y cosecha // La tarea del huerto es Consigamos tres objetos frutales: uvas, manzanas y fresas // Podemos usar los objetos obtenidos para completar los tres pasos de crecimiento, cultivo y cosecha de frutos // El huerto es lo que llamamos una fábrica simple (Factory) // Y las uvas, las manzanas y las fresas Las tres frutas son los productos en la fábrica (Pruduct) //El proceso de completar el producto se llama usuario externo (Produce) // La ventaja de usar una fábrica simple es // Aprovecha al máximo el polimorfismo // No importa qué tipo de huerto plantes, devuelve Los objetos no son uvas, manzanas o fresas específicas // sino que devuelve uno de sus objetos abstractos fruta (IFruit ) // haciendo pleno uso de la encapsulación // los usuarios externos no se verán afectados cuando el producto interno cambie // sus deficiencias Sí// Si se agrega un nuevo producto, se debe modificar la fábrica
Esta es la código fuente del archivo unitario que define una fábrica simple lishixinzhi/Article/program/Delphi/201401/30259