1 單例模式
# 單例模式:確保一個(gè)類只有一個(gè)實(shí)例,并提供一個(gè)全局訪問點(diǎn)。
class Singleton:
pass
st = Singleton()
"""
在其它文件中import, 使用上述類時(shí),無論實(shí)例化多少對(duì)象,得到對(duì)象id都是一樣的,相當(dāng)于實(shí)例化一個(gè)對(duì)象
---> 節(jié)省內(nèi)存;節(jié)省創(chuàng)建對(duì)象的開銷
"""
2 工廠模式
# -- coding: utf-8 --
"""
當(dāng)需要大量創(chuàng)建一個(gè)類的實(shí)例的時(shí)候,可以使用工廠模式:
即從原生的使用類的構(gòu)造去創(chuàng)建對(duì)象的形式,遷移到基于工廠提供的方法去創(chuàng)建對(duì)象的形式
"""
"""
優(yōu)點(diǎn): 1.大批量創(chuàng)建對(duì)象的時(shí)候有統(tǒng)一的入口,易于代碼的維護(hù)
2.當(dāng)發(fā)生修改,僅需要修改工廠類的創(chuàng)建方法即可
3.符合現(xiàn)實(shí)世界的模式,即有工廠來制作產(chǎn)品(對(duì)象)
"""
class Person:
pass
class Worker(Person):
pass
class Student(Person):
pass
class Teacher(Person):
pass
class PersonFactory:
def get_person(self, p_type):
if p_type == 'worker':
return Worker()
elif p_type == 'student':
return Student()
elif p_type == 'teacher':
return Teacher()
else:
return None
pf = PersonFactory()
worker = pf.get_person('worker')
student = pf.get_person('student')
teacher = pf.get_person('teacher')
文章來源地址http://www.zghlxwxcb.cn/news/detail-801154.html
文章來源:http://www.zghlxwxcb.cn/news/detail-801154.html
到了這里,關(guān)于Python進(jìn)階知識(shí):整理3 -> 設(shè)計(jì)模式(單例模式、工廠模式)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!