1. 程式人生 > 其它 >python爬蟲 關於requests.exceptions.ConnectionError 等問題

python爬蟲 關於requests.exceptions.ConnectionError 等問題

說明:嚴格來說,簡單工廠模式不是GoF總結出來的23種設計模式之一。 意圖: 定義一個用於建立物件的介面,讓子類決定例項化哪一個類。Factory Method使一個類的例項化延遲到其子類。 適用性: 當一個類不知道它所必須建立的物件的類的時候。 當一個類希望由它的子類來指定它所建立的物件的時候。 當類將建立物件的職責委託給多個子類中的某一個。 示例程式碼:
#!/usr/bin/env python 
#-*- coding:utf-8 -*-
'''
simple Factory Method
'''
class Shape(object):
    '''
    父類
    '''
def draw(self): raise NotImplementedError class Circle(Shape): ''' Shape子類 ''' def draw(self): print('draw circle') class Rectangle(Shape): ''' Shape的子類 ''' def draw(self): print('draw Rectangle') class ShapeFactory(object): ''' 工廠模式:暴露給使用者去呼叫的, 使用者可通過該類進行選擇Shape的子類進行例項化
''' def create(self, shape): if shape == 'Circle': return Circle() elif shape == 'Rectangle': return Rectangle() else: return None fac = ShapeFactory() #例項化工廠類 obj = fac.create('Circle') #例項化Shape的Circle子類 obj.draw()
執行結果: Shape(父類 or 基類):提取出所有子類的重複方法程式碼
Circle(Shape子類 or 派生類):作用為畫圓形 Rectangle(Shape子類 or 派生類):作用為畫矩形 ShapeFactory(新式類):該類作用為使用者可根據該類物件建立指定的Shape子類物件(Circle or Rectangle) 優點:客戶端不需要修改程式碼。 缺點: 當需要增加新的運算類的時候,不僅需新加運算類,還要修改工廠類,違反了開閉原則。