设计模式学习

一、设计模式如下

常用的设计模式包含以下内容:

  • 简单工厂
  • 工厂方法
  • 抽象工厂
  • 单例模式

二、各类设计模式介绍

1、简单工厂

实例化对象的时候不再使用 new Object()形式,可以根据用户的选择条件来实例化相关的类。对于客户端来说,去除了具体的类的依赖。只需要给出具体实例的描述给工厂,工厂就会自动返回具体的实例对象。

下面通过代码进行举例:

#!encoding=utf-8

'''玩具类'''

#玩具类--基类
class Toy:
    def run(self):
        print('没法玩')

#飞机--Toy子类
class Air(Toy):
    def run(self):
        print('飞在天上')

#船--Toy子类
class Ship(Toy):
    def run(self):
        print('飘在海上')

#汽车--Toy子类
class Car(Toy):
    def run(self):
        print('跑在路上')


class Simple:
    def create(self,name):
        #根据name返回对应的类
        if name.lower()=='ship':
            return Ship()
        elif name.lower()=='air':
            return Air()
        elif name.lower()=='car':
            return Car()
        else:
            return Toy()

if __name__=="__main__":
    #通过输入玩具名称获取相对应的类
    factory=Simple()
    toy=factory.create("air")
    #获取类之后使用类的方法
    toy.run()

我们只需要在Simple类调用create函数并给出name参数,就会获取得到name对应的类来进行实例化,同时获得对应类的方法,这样做的好处:

  • 调用者不需要关心类的实例化是怎么生产出来的,只需要设置参数就能够实现类的实例化
  • 将类统一管理,并且相对于直接定义类的实例化来说更加灵活
  • 可以减少代码量
  • 易于代码维护与管理

但是这种方式的缺陷就是每次增加新的类时,需要进行硬编码(在create函数编写对应的if代码)

简单工厂详细介绍:https://www.runoob.com/design-pattern/factory-pattern.html

2、工厂方法

为了1024徽章先发出来了,后面持续更新...

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值