Python设计模式

本文介绍了Python设计模式,包括单例模式、工厂模式和策略模式。单例模式确保类只有一个实例,工厂模式用于根据输入创建不同类型的对象,策略模式则通过封装多种策略来实现算法的灵活切换。文中通过具体的例子和代码展示了这些模式的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1.概述

2.常用的设计模式

3.单例模式

(1)保证只有一个对象

(2)正常情况下一个类的多个对象

(3)创建单例模式的方式

   1)使用__new__()魔法方法,创建一个传统的单例模式

 

2)导入模块

4.工厂模式

(1)工厂模式是一个在软件开发中用来创建对象的设计模式。

(2)使用工厂模式应用场景:

(3)工厂里造出来新车,提到4s店,客户下单之后,就可以取到车,车就能跑能停

用工厂模式实现这个功能

5.策略模式

(1)策略指的就是为了达到某一目的而采取的多种手段或者方法。

(2)策略模式的定义

(3)策略模式的结构

Context(环境类)

Strategy(抽象策略类)

ConcreteStrategy(具体策略类)

(4)练习:

假设某公司维护着一些客户资料,需要在该公司有新产品上市或者举行新活动的时候,通知客户现通知客户的方式有两种:电话通知,邮件通知  type应如何设计该系统的客户通知部分


1.概述

简单来说设计模式就是一种方法(套路),是软件开发人员在软件开发过程中面临的一般问题的解决方法

使用设计模式是为了重用代码,让代码更容易被他人理解,保证代码的可靠性。

比如说:比如说建筑行业,中西方建筑各有自己的风格,每种风格都有自己的建筑方法(套路),只要按照不同的建筑方法,就能建成不同的建筑。

再比如说:肯德基麦当劳快餐店为什么全球的口味都一样呢,就是做食品的套路相同。


2.常用的设计模式

单例模式 保证只有一个对象
工厂模式

用来创建对象

策略模式 定义一系列算法(逻辑),将每一个算法封装起来(一个算法创建一个类),并让它们可以相互替换。此模式让算法的变化,不会影响到使用算法的客户.

3.单例模式

(1)保证只有一个对象

比如说:世界上只有一个太阳

(2)正常情况下一个类的多个对象


(3)创建单例模式的方式

   1)使用__new__()魔法方法,创建一个传统的单例模式

  • 创建不成功的情况:创建出了两个不同的对象

  • 创建成功的情况:只能创建一个对象
# 这种方法可以创建单例模式,即创建了相同的对象,但是写法不规范
class Sun(object):
    def __new__(cls, *args, **kwargs):
        super().__new__(cls)


sun1 = Sun()
sun2 = Sun()
print(id(sun1))
print(id(sun2))

 

class Sun(object):
    instance = None

    def __new__(cls, *args, **kwargs):
        if not cls.instance:  # not None就是True,没有对象就创建一个新对象
            cls.instance = super().__new__(cls)
            # 调用父类object的__new__()方法,把创建的新对象传给cls.instance
        return cls.instance  # 有对象就返回原来有的那个对象


sun1 = Sun()
sun2 = Sun()
print(id(sun1))
print(id(sun2))
# sun1和sun2的地址一样

2)导入模块

导入singleton模块的sun对象,不管导入几次,sun对象都是一样的,地址也是一样的


4.工厂模式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值