zoukankan      html  css  js  c++  java
  • python---重点(设计模式)

    前戏:设计模式简介

    设计模式是面向对象设计的解决方案,是复用性程序设计的经验总结。(与语言无关,任何语言都可以实现设计模式)

    设计模式根据使用目的的不同而分为创建型模式(Creational Pattern),结构性模式(Structural Pattern)和行为型模式(Behavioral Pattern)

    创建型模式:提出来对象创建的解决方案以及数据封装的方法。降低了创建对象时代码实现的复杂度,是对象的创建时能够满足特定的要求。例如工程模式,抽象工厂模式,单例模式,生成器模式

    结构型模式:描述了对象之间的体系结构,通过组合,继承等方式改善体系结构,降低体系结构中的组件依赖性。例如,适配器模式。桥模式,组合模式,装饰器模式,外观模式等。

    行为模式:描述了对象之间的交互和各自的职责,有助于实现程序中对象的通讯和流程的控制。例如:迭代器模式,解释器模式,中介者模式,观察者模式等。

    使用python同样可以实现各种设计模式,而且实现过程比较简单。

    一:工厂模式

    在工厂方法模式中,工厂方法用于创建产品。并隐藏了产品对象实例化的过程。过程方法根据不同的参数生成不同的对象。因此客户程序只需要知道工厂类和产品的父类,并不需要知道产品的创建过程以及返回产品的类型。

    例如:定义Factory类创建不同的Fruit对象,Apple类和Banana类继承自Fruit类。那么这两个类(Apple和和Banana类就是我们需要去生成的产品)

    实现工厂方法(简单版本)

    class Factory:
        def createFruit(self,fruit):
            if fruit == "apple":
                return Apple()
            elif fruit == "banana":
                return Banana()
    
    class Fruit:
        def __str__(self):
            return "fruit"
    
    class Apple(Fruit):
        def __str__(self):
            return "apple"
    
    class Banana(Fruit):
        def __str__(self):
            return "banana"
    
    if __name__ == "__main__":
        factory = Factory()
    
        a = factory.createFruit("apple")
        b = factory.createFruit("banana")
        print(a,b)  #apple banana

    简单实现,并不完美,后面补上

  • 相关阅读:
    lesson4Embedding-fastai
    lesson3 overfitting -fastai
    cell-augmented
    ROI-Align解决方案
    软件安装
    lesson1-fastai
    mask-rcnn
    代码basic讲解
    skearn/pandas
    HDU1087上升子序列的最大和
  • 原文地址:https://www.cnblogs.com/ssyfj/p/8970114.html
Copyright © 2011-2022 走看看