当前位置: 首页 > 后端技术 > Python

(浅谈创建模式)设计模式——工厂、抽象工厂C++-Python3实现

时间:2023-03-26 13:03:32 Python

介绍设计模式是为了解决出现的一些问题而设计的解决方案。它是长期经验的总结,是针对不同问题提出和实践的解决方案。使用不同的设计模式来解决不同的问题。设计模式可以分为三类:创建模式、结构模式和行为模式。在开发中,假设不使用设计模式,可能会造成过度耦合,造成一定的代码冗余,并可能影响后续的开发过程;合理使用合适的设计模式会提高整体的灵活性,降低后续的维护成本。创建模式,顾名思义,是处理对象创建,降低复杂度的设计模式,在创建复杂对象时使用。工厂模式在类中实现一个接口来创建指定的对象,将类的实例化推迟到子类。简单的说就是封装了类的所有创建,只需要调用一个子类的方法就可以实现类的创建,不会暴露创建类的逻辑。下面是一个工厂类的例子:python代码如下:#原创不易多多支持#Blog:https://me.csdn.net/A757291228classFactory:defgetFruit(self,name,color,taste):ifname=='apple':returnApple(color,taste)classFruit:def__init__(self):print("Fruitclassinitialization")defget_color(self):returnself.colordefget_taste(self):返回自我.tasteclassApple(Fruit):def__init__(self,color,taste):print("Appleinitialization")self.color=colorself.taste=tasteclassBanana(Fruit):def__init__(self,color,taste):打印("香蕉初始化")self.color=colorself.taste=tasteif__name__=='__main__':factory=Factory()appleClass=factory.getFruit("apple","green","sweet")print('Apple'scolor',appleClass.get_color(),'AppleTaste',appleClass.get_taste())C++代码如下://原创不易,多多支持//博客:https://me.csdn.net/A757291228#includeusingnamespacestd;classFruit{public:stringcolor;英石响味;Fruit(){}};classApple:publicFruit{public:Apple(字符串颜色,字符串味道){this->color=color;这个->味道=味道;cout<<"苹果类创建"<getFruit("苹果","红","甜");cout<<"tasteofapple"<color<usingnamespacestd;//原创不易,多多支持//博客:https://me.csdn.net/A757291228//食品基类classFood{public:stringcolor;stringtaste;Food(){}};//三类classFruit:publicFood{public:Fruit(){}};classVegetables:publicFood{public:Vegetables(){}};classStaple:publicFood{public:Staple(){}};//三个具体类classApple:publicFruit{public:Apple(stringcolor,stringtaste){this->color=color;this->taste=taste;cout<<"Appleclasscreation"<color=color;this->taste=taste;cout<<"Appleclasscreation"<color=颜色;this->taste=味道;cout<<"苹果类创建"<getFactory("Fruit");Food*apple=fruit->getFood("苹果","红","甜");cout<<"tasteofapple"<taste<