工厂策略模式优化if语句
时间: 2023-09-22 12:05:10 浏览: 95
工厂模式是一种常用的设计模式,它可以有效地解决大量的if-else语句。其核心思想是将对象的创建过程封装在一个工厂类中,客户端只需要传递一个参数给工厂类,工厂类就可以根据这个参数创建相应的对象。
下面是一个简单的工厂模式示例:
```python
class Animal:
def speak(self):
pass
class Dog(Animal):
def speak(self):
return "Woof!"
class Cat(Animal):
def speak(self):
return "Meow!"
class AnimalFactory:
def create_animal(self, animal_type):
if animal_type == "dog":
return Dog()
elif animal_type == "cat":
return Cat()
else:
raise ValueError("Invalid animal type")
# 创建工厂实例
factory = AnimalFactory()
# 创建不同类型的动物实例
dog = factory.create_animal("dog")
cat = factory.create_animal("cat")
# 调用动物实例的方法
print(dog.speak()) # 输出 "Woof!"
print(cat.speak()) # 输出 "Meow!"
```
在上面的代码中,我们定义了一个抽象基类Animal和两个具体子类Dog和Cat。然后我们定义了一个AnimalFactory类,它有一个create_animal方法,根据传入的参数创建相应类型的动物实例。客户端只需要调用AnimalFactory的create_animal方法,并传入相应的参数即可。
使用工厂模式可以将大量的if-else语句转换为简单的对象创建过程,从而提高代码的可读性和可维护性。
阅读全文