zoukankan      html  css  js  c++  java
  • 30、面向对象设计模式之工厂方法模式概念的引入

    工厂方法模式缘起

      耦合关系决定软件变化时的行为。

      模块之间的紧耦合使用软件面对变化时,相关的模块都要随之更改。

      而模块之间的松耦合使得软件面对变化时,一些模块更容易被替换或者更改,但其他模块保持不变。

    工厂方法模式得动机

      在软件系统中经常面临“某个对象”的创建工作,由于需求的变化,这个对象(具体实现)经常面临着剧烈变化它却有比较稳定的接口

      如何应对变化?有没有一种”封装机制“来隔离这种变化,从而保持系统中”其他依赖该对象的对象“,不随着需求的变化而变化呢?

    工厂方法的用意

      定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法模式使得一个类的实例化延迟到子类。 

    下面代码理解上面的结构图

    public interface IProduct{
        void ProductMethod();
    }
    class Product:IProduct{
        public void ProductMethod(){
            Console.WriteLine("产品");
        }
    }
    public interface IFactory{
        IProduct CreateProduct();
    }
    public class Factory :IFactory{
        public IProduct CreateProduct(){
            return new Product();
        }
    }
    class Program{
        
        static void Main(string[] args){
            IFactory factory = new Factory();
            IProduct product = factory.CreateProduct();
            product.CreateProduct();
        }
    }
  • 相关阅读:
    页面性能优化的简单介绍
    JavaScript基础介绍
    迅雷/快车/旋风地址转换器
    关于 API 中返回字串的一些问题
    将文件夹映射为驱动器的工具
    BCB/Delphi2007 隐藏任务栏图标
    所有小工具
    oracle ora01033和ora00600错误
    批量更改文件名的批处理文件
    替代Windows运行功能的工具FastRun
  • 原文地址:https://www.cnblogs.com/sy-liu/p/13141883.html
Copyright © 2011-2022 走看看