1. 程式人生 > 其它 >學習python,從入門到放棄(29)

學習python,從入門到放棄(29)

學習python,從入門到放棄(29)

設計模式

在IT行業中設計模式總共有23種,大致可以分為三大類分別是建立型、結構型和行為型。

設計模式是經過反覆驗證用於解決固定問題的固定套路。

  • 設計模式之單例模式

    單例模式的意思是一個類只能產生一個物件,用於節省資源,比如有一個類中有很多繫結給物件的方法,我們需要在很多地方使用它,那麼不同的程式設計師來用不知道有沒有產生物件,所以自己會建立一個新物件,如此往復則會造成資源的浪費。

    所以我們需要在類例項化物件的時候進行干涉 >>>: 元類

    單例模式:(可以有很多種編寫方式)

    class Single(type):
        new_obj = None
    
        def __call__(self, *args, **kwargs):
            if not self.new_obj:
                obj = super().__call__(*args, **kwargs)
                self.new_obj = obj
                return self.new_obj
            return self.new_obj
    
    
    class MyClass(metaclass=Single):
        def __init__(self, name):
            self.name = name
    
    
    obj1 = MyClass('jason')
    obj2 = MyClass('tony')
    print(id(obj1), id(obj2))
    print(obj1.__dict__, obj2.__dict__)
    

pickle 模組

並且該模組只支援 python,相容性很差。

大致用於,將物件儲存到檔案,並且取出來之後還可以使用物件的功能。

import pickle


class MyClass(object):
    school = 'school'

    def __init__(self, name):
        self.name = name

    def choose_course(self):
        print('%s正在選課' % self.name)


obj = MyClass('jason')
print(obj.school)
obj.choose_course()

# pickle可以
with open(r'%s' % obj.name, 'wb') as f:
    pickle.dump(obj, f)

with open(r'jason', 'rb') as f:
    data = pickle.load(f)
print(data)
print(data.name)
print(data.school)