zoukankan      html  css  js  c++  java
  • 设计模式之简单工厂模式

    工厂及时生产产品的车间,在面向对象中就是类的实例。所以工厂就是一个能够产出其他类型的对象的类。工厂类设计模式主要有三种,即简单工厂模式、工厂模式和抽象工厂模式。

    简单工厂模式

    简单工厂模式是指专门定义一个工厂类来负责创建产品类的实例,被创建的产品通常都有一个共同的弗雷。

    该设模式包含三个角色:

    1、简单工厂角色:工厂模式的核心,负责生产具体的产品。工厂类可以被外部用户即客户端调用,创建产品对象,作用主要是实现外部用户和产品对象的解耦。

    2、抽象产品角色:简单工厂模式创建的具体产品对象的父类,负责描述索引产品的共同特征。

    3、具体产品角色:具体的产品对象,是客户端调用工厂的目的就是产生具体的产品。

    还是举个栗子吧:

    class Fruit:
        def produce(self):
            print("fruit was producesd")
    
    class Apple(Fruit):
        def produce(self):
             print("Apple was produced")
    class Pear(Fruit):
        def produce(self):
             print("Pear was produced")
    
    class FruitFactory:
        def produce_the_fruit(self,name):
            if name=="apple":
                return Apple()
            elif name=="pear":
                return Pear()
            else:
                return Fruit()
    
    if _name__=="__main__":
        factory=FruitFactory()
        apple=factory.produce_the_fruit("apple")
        apple.produce()

    简单工厂模式的优点:

      客户端与工厂进行交互,不再直接生产产品,实现了外部对象与具体产品对象之间的解耦合。

    缺点:

      具体的产品类修改过多或有新的产品类的情况下,需要修改工厂类的代码,加大了维护难度。违反了开闭原则。

  • 相关阅读:
    解决ssh或ftp下root用户认证失败问题
    setsockopt IP_ADD_MEMBERSHIP error!No such device的解决方案
    嵌入式Linux软件工程师面试题一
    00.嵌入式Linux开发环境搭建
    这个是豆瓣查书的api
    CentOS7.x安装MongoDB3.2.3教程
    Linux(Centos7)yum安装最新mysql
    解决npm速度慢的问题!!!
    windows下Gulp入门详细教程
    hibernate中hql查询
  • 原文地址:https://www.cnblogs.com/zuoshoushizi/p/8453603.html
Copyright © 2011-2022 走看看