python 种设计模式
Python是一种广泛使用的面向对象编程语言,具有丰富的函数库和模块,支持多种设计模式。设计模式是一种软件设计思想,可以用于解决特定的问题。本文将介绍Python中的一些常见设计模式。
单例模式
单例模式是一种保证类只有一个实例的设计模式。在Python中,可使用__new__方法实现。
class Singleton(object): _instance = None def __new__(cls, *args, **kwargs): if cls._instance is None: cls._instance = super(Singleton, cls).__new__(cls, *args, **kwargs) return cls._instance
工厂模式
工厂模式是一种创建对象的设计模式,隐藏了创建对象的复杂性。在Python中,可使用类方法实现工厂模式。
class Animal(object): def __init__(self,name): self.name = name @classmethod def categorize(cls, category, name): if category == "dog": return Dog(name) elif category == "cat": return Cat(name) class Dog(Animal): def __str__(self): return self.name+" is a dog." class Cat(Animal): def __str__(self): return self.name+" is a cat." d = Animal.categorize("dog", "Tommy") print(d)
视察者模式
视察者模式是一种包括多个对象之间的一种依赖关系,在状态改变时自动更新对象。在Python中,可使用Observable和Observer实现视察者模式。
class Observable(object): def __init__(self): self.observers = [] def add_observer(self, observer): if observer not in self.observers: self.observers.append(observer) def remove_observer(self, observer): if observer in self.observers: self.observers.remove(observer) def notify_observers(self, message): for observer in self.observers: observer.update(message) class Observer(object): def update(self, message): pass class Display(Observer): def update(self, message): print("Display: "+message) class Logger(Observer): def update(self, message): print("Logger: "+message) subject = Observable() observer_1 = Display() observer_2 = Logger() subject.add_observer(observer_1) subject.add_observer(observer_2) subject.notify_observers("Hello!")
以上是Python中的一些常见设计模式。设计模式可让我们更好地组织代码,提高代码的可保护性和可复用性。
文章来源:丸子建站
文章标题:python 种设计模式
https://www.wanzijz.com/view/78018.html