For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
软件开发设计模式是每一位学习计算机编程开发技术的程序员都应该熟练掌握的一个编程知识点,下面我们就通过案例分析来了解一下,软件开发工厂设计模式类型。
任何设计模式都是用来解决软件设计的复杂性问题,追求设计上的稳定性。工厂模式属于创建者模式之一(其它的创建者模式如单例、原型、建造者模式),用来解决对象创建的复杂性。
什么样的对象创建具有复杂性?
只需要一句new以及传几个简单参数的基本不存在创建复杂性,也就用不上工厂模式;
对象创建具有多态性:如需要根据配置创建不同的子类型对象,创建代码中有多个ifelse的;
对象创建过程比较复杂:虽然不需要创建不同的子类对象,但对象创建本身较复杂,必须需要读取配置文件、获取远程数据等;
在进一步讨论之前,我们先简单提下工厂模式的三种形式:简单工厂、工厂方法和抽象工厂(和GoF的划分有点不一样)。
简单工厂:在目标类中创建一个静态方法用于创建目标类对象,或者进一步,将该静态方法抽离成一个单独的工厂类;
工厂方法:对简单工厂的升级。定义一个工厂接口,利用多态,每个工厂实现类返回目标类/接口的一种特定子类实例。工厂方法解决了简单工厂可能过于复杂的问题,使得工厂本身更符合开闭原则和单一职责原则;
抽象工厂:对工厂方法的升级。它是用来解决目标实例本身的多维复杂性,防止工厂类随着目标类数量一起爆炸增长。工厂方法是一个工厂类只负责创建一种目标实例,而抽象工厂是一个工厂可以创建多种目标实例。
单听理论有点懵,大致只需要知道从工厂自身的复杂性以及用来解决问题的复杂性来说,简单工厂<工厂方法<抽象工厂(前者是后者的特例,后者是前者的升级)——注意,这里提到了两个复杂性(工厂自身复杂性和它需要解决的问题复杂性),这也预示着使用工厂的原则:尽可能使用简单工具解决问题,除非问题真的很复杂,简单工具不好解决。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。