大话设计模式
亥虫
做人如果没有梦想,那跟咸鱼有什么差别
展开
-
(Python3 代码实现)《大话设计模式》十:观察者模式
模式特点:定义了一种一对多的关系,让多个观察对象同时监听一个主题对象,当主题对象状态发生变化时会通知所有观察者。程序实例:公司里有两种上班时趁老板不在时偷懒的员工:看NBA的和看股票行情的,并且事先让老板秘书当老板出现时通知他们继续做手头上的工作。程序特点:无class Observer: def __init__(self, strname, strsub): self.name = strname self.sub = strsub def ..原创 2021-01-26 21:59:28 · 827 阅读 · 0 评论 -
(Python3 代码实现)《大话设计模式》九:建造者模式
模式特点:将一个复杂对象的构建(Director)与它的表示(Builder)分离,使得同样的构建过程可以创建不同的表示(ConcreteBuilder)。程序实例:“画”出一个四肢健全(头身手腿)的小人代码特点:无class Person: def create_head(self): pass def create_hand(self): pass def create_body(self): pass d..原创 2021-01-26 21:58:15 · 780 阅读 · 0 评论 -
(Python3 代码实现)《大话设计模式》八:外观模式
模式特点:为一组调用提供一致的接口。程序实例:接口将几种调用分别组合成为两组,用户通过接口调用其中的一组。代码特点:无class SubSystemOne: def MethodOne(self): print("SubSysOne")class SubSystemTwo: def MethodTwo(self): print("SubSysTwo")class SubSystemThree: def MethodThree(s..原创 2021-01-26 21:56:03 · 806 阅读 · 0 评论 -
(Python3 代码实现)《大话设计模式》七:模板方法模式
模式特点:定义一个操作中的算法骨架,将一些步骤延迟至子类中。程序实例:考试时使用同一种考卷(父类),不同学生上交自己填写的试卷(子类方法的实现)代码特点:无class TestPaper: def TestQuestion1(self): print("Test1:A. B. C. D.") print("(%s)" % self.Answer1()) def TestQuestion2(self): print("Test1:A..原创 2021-01-26 21:54:43 · 709 阅读 · 0 评论 -
(Python3 代码实现)《大话设计模式》六:原型模式
模式特点:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。程序实例:从简历原型,生成新的简历代码特点:简历类Resume提供的Clone()方法其实并不是真正的Clone,只是为已存在对象增加了一次引用。Python为对象提供的copy模块中的copy方法和deepcopy方法已经实现了原型模式,但由于例子的层次较浅,二者看不出区别。import copyclass Resume: name = '' age = 0 def __init__(se..原创 2021-01-26 21:33:04 · 679 阅读 · 0 评论 -
(Python3 代码实现)《大话设计模式》五:工厂方法模式
模式特点:定义一个用于创建对象的接口,让子类决定实例化哪一个类。这使得一个类的实例化延迟到其子类。程序实例:基类雷锋类,派生出学生类和志愿者类,由这两种子类完成“学雷锋”工作。子类的创建由雷锋工厂的对应的子类完成。代码特点:无class LeiFeng: def Sweep(self): print("LeiFeng sweep")class Student(LeiFeng): def Sweep(self): print("Student ..原创 2021-01-26 21:30:49 · 675 阅读 · 0 评论 -
(Python3 代码实现)《大话设计模式》四:代理模式
模式特点:为其他对象提供一种代理以控制对这个对象的访问。程序实例:同模式特点描述。代码特点:无class Interface: def request(self): return 0class RealSubject(Interface): def request(self): print("Real request")class Proxy(Interface): def request(self): self..原创 2021-01-26 21:28:57 · 655 阅读 · 0 评论 -
(Python3 代码实现)《大话设计模式》三:装饰模式
装饰模式模式特点:动态地为对象增加额外的职责程序实例:展示一个人一件一件穿衣服的过程。代码特点:无#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2021/1/19 17:41# @Author : cch# @Site :# @File : decorator.py# @Software: PyCharmclass Person: def __init__(self, tname):原创 2021-01-26 21:27:04 · 690 阅读 · 1 评论 -
(Python3 代码实现)《大话设计模式》二:策略模式
模式特点:定义算法家族并且分别封装,它们之间可以相互替换而不影响客户端。程序实例:商场收银软件,需要根据不同的销售策略方式进行收费代码特点:不同于同例1,这里使用字典是为了避免关键字不在字典导致bug的陷阱。class CashSuper: def accept_cash(self, money): passclass CashNormal(CashSuper): def accept_cash(self, money): return mo..原创 2021-01-26 21:19:16 · 705 阅读 · 0 评论 -
(Python3 代码实现)《大话设计模式》一:简单工厂模式
简单工厂模式模式特点:工厂根据条件产生不同功能的类。程序实例:四则运算计算器,根据用户的输入产生相应的运算类,用这个运算类处理具体的运算。代码特点:C/C++中的switch…case…分支使用字典的方式代替。使用异常机制对除数为0的情况进行处理。class Operation: def GetResult(self): passclass OperationAdd(Operation): def GetResult(self): retu原创 2021-01-26 19:47:42 · 710 阅读 · 0 评论