23种设计模式介绍(Python示例讲解)(4)

2023-04-30 来源:飞速影视
组合/聚合复用原则(Composite/Aggregate Reuse Principle,CARP):尽量使用组合或聚合关系,而不是继承关系来达到代码复用的目的。这个原则强调的是通过组合和聚合的方式来实现代码复用,避免继承带来的一些问题,如父类和子类之间的强耦合性,从而提高代码的灵活性和可维护性。
三、设计模式示例讲解
1)创建型模式
1、工厂模式(Factory Method)
工厂方法模式定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。可分为简单工厂模式、工厂方法模式。以下分别对两种模式进行介绍。
【1】简单工厂模式(不属于GOF设计模式之一)
简单工厂模式属于创建型模式,又叫做静态工厂方法(Static Factory Method)。简单工厂模式是由一个工厂对象决定创建哪一种产品类实例。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为不同工厂模式的一个特殊实现。
值得注意的是,简单工厂模式并不属于GOF设计模式之一。但是他说抽象工厂模式,工厂方法模式的基础,并且有广泛得应用。
在简单工厂模式中,有一个工厂类负责创建多个不同类型的对象。该工厂类通常包含一个公共的静态方法,该方法接受一个参数,用于指示要创建的对象类型,然后根据该参数创建相应的对象并返回给客户端。简单工厂模式可以隐藏对象创建的复杂性,并使客户端代码更加简洁和易于维护。但它也有一些缺点,例如如果需要添加新的对象类型,则必须修改工厂类的代码。同时,该模式也可能破坏了单一职责原则,因为工厂类不仅负责对象的创建,还负责了判断要创建哪个对象的逻辑。简单工厂模式通常被用于创建具有相似特征的对象,例如不同类型的图形对象、不同类型的数据库连接对象等。
下面是一个简单工厂模式的 Python 实现示例:
class Product: def operation(self): passclass ConcreteProductA(Product): def operation(self): return "ConcreteProductA"class ConcreteProductB(Product): def operation(self): return "ConcreteProductB"class SimpleFactory: @staticmethod def create_product(product_type): if product_type == "A": return ConcreteProductA() elif product_type == "B": return ConcreteProductB() else: raise ValueError("Invalid product type")if __name__ == "__main__": # 客户端代码 product_a = SimpleFactory.create_product("A") product_b = SimpleFactory.create_product("B") print(product_a.operation()) # 输出:
相关影视
合作伙伴
本站仅为学习交流之用,所有视频和图片均来自互联网收集而来,版权归原创者所有,本网站只提供web页面服务,并不提供资源存储,也不参与录制、上传
若本站收录的节目无意侵犯了贵司版权,请发邮件(我们会在3个工作日内删除侵权内容,谢谢。)

www.fs94.org-飞速影视 粤ICP备74369512号