Vistor 模式:
Vistor 模式常常用于将访问数据,支持传入不同的数据访问器(或是处理器),上例子
def visit(directory, visitor):
for root, dirs, files in os.walk(directory):
for f in files:
ext = os.path.splitext(f)[-1][1:]
if hasattr(visitor,ext):
a = getattr(visitor,ext)
a(f)
class FileReader(object):
"""
File Reader
"""
def bmp(self,f):
print "is bmc",f
visit("d:\\eastmoney\\",FileReader())
is bmc btclose.bmp
is bmc btclose2.bmp
is bmc btclosedown.bmp
is bmc btmax.bmp
Observer 模式:
Observer 模式常常用于侦听对象发生的变化,上例子
class Event(object):
_observers = []
def __init__(self, subject):
self.subject = subject
@classmethod
def register(cls, observer):
if observer not in cls._observers:
cls._observers.append(observer)
@classmethod
def unregister(cls, observer):
if observer in cls._observers:
self._observers.remove(observer)
@classmethod
def notify(cls, subject):
event = cls(subject)
for observer in cls._observers:
observer(event)
class WriteEvent(Event):
def __repr__(self):
return 'WriteEvent'
def log(event):
print '%s was written' % event.subject
WriteEvent.register(log)
WriteEvent.notify('a given file')
分享到:
相关推荐
Python设计模式是软件开发中的一种最佳实践,它是一种在特定情境下解决常见问题的经验总结。设计模式并不是具体的代码或库,而是对重复出现的编程结构的标准化命名和描述。通过理解并应用设计模式,开发者可以编写出...
本专题涵盖了多种设计模式的示例代码,包括Python和C++两种编程语言实现,旨在帮助开发者更好地理解和应用这些模式。 1. **Builder模式**:Builder模式是一种创建型设计模式,它提供了一种创建对象的抽象方法,使得...
- **结构化赋值(Pattern Matching)**:Python 3.10 引入了类似于 Rust 和 Swift 的模式匹配语法,使代码更加简洁易读,尤其是在处理复杂的条件和解构过程中。 - **Match Case 语句**:配合结构化赋值,`match` ...
装饰模式是一种结构型设计模式,它允许在运行时动态地给对象添加新的行为或职责,同时保持对象的接口不变。这种模式使得我们可以在不修改原有代码的基础上,通过组合不同的装饰来扩展对象的功能,实现了代码的高可...
在Python中,设计模式主要分为三大类:创建型、结构型和行为型。创建型模式关注对象的创建,如单例(Singleton)、工厂方法(Factory Method)和建造者(Builder)等,它们提供了一种创建对象的最佳方式,使得代码...
Python的面向对象特性使其非常适合实现设计模式,中介者模式可以通过定义类及其实例来实现。`Mediator.py`可能包含了`Mediator`和`ConcreteColleague`类的定义,通过类的继承和方法调用来实现同事类之间的交互。 5...
当我们谈论“Python编程 - 设计模式 - 从入门到实践”时,这意味着我们将探讨如何在Python编程中应用这些模式来提高软件开发的效率和质量。 首先,让我们理解什么是设计模式。设计模式并不特定于任何一种编程语言,...
《Python-图说设计模式》是一本以图形和代码相结合的方式深入解析设计模式的书籍,主要面向Python开发者,尤其适合那些希望通过图形化理解来增强编程思维的读者。设计模式是软件工程中的宝贵经验总结,是解决常见...
阅读关于Python设计模式和数据结构的书籍可以帮助你更好地理解和应用这些概念。通过实践和学习,你可以提升编程技巧,写出更优雅、高效的代码。同时,这也能增强你在解决问题时的思维敏捷性和创新能力。 总的来说,...
【设计模式】 一、创建类 工厂方法模式 建造者模式 原型模式 单例模式 二、结构类 享元模式 代理模式 装饰器模式 适配器模式 桥接模式 外观模式 三、行为类 命令模式 访问者模式 责任链模式 备忘录...
模板模式是一种行为设计模式,它使你能在不破坏封装性的前提下,定义执行算法的框架,而将一些步骤延迟到子类中。这样,你就能创建一个可复用的框架,将具体步骤留给子类来实现。这个模式的核心思想是抽象类定义了一...
在“设计模式专题之(十五)责任链模式---设计模式责任链模式示例代码(python--c++)”中,我们可以期待看到两种编程语言——Python和C++——实现的责任链模式。这两种实现都旨在展示如何通过构建处理请求的对象链来...
状态模式是一种行为设计模式,它允许对象在内部状态改变时改变其行为,对象看起来似乎修改了它的类。这种模式常用于处理对象的状态变化,使得对象的行为与其状态紧密相关,通过改变对象的状态,来改变对象的行为。 ...
策略模式(Strategy Pattern)是一种行为型设计模式,旨在将算法封装成独立的类,并使它们可以互相替换。这种模式使得算法的变化独立于使用算法的客户端,从而提供了灵活性和可扩展性。策略模式常用于需要在运行时...
Python 3.7.3是Python编程语言的一个稳定版本,主要针对AMD64架构(也称为x86_64或64位)设计。这个版本的发布在Python社区中备受关注,因为它引入了许多改进、优化和新特性,旨在提升开发者的效率和代码性能。 ...
职责链模式(Chain of Responsibility Pattern)是一种行为型设计模式,旨在将请求从一个处理者传递到下一个处理者,直到请求被处理或到达链的末端。职责链模式通过将请求的发送者和接收者解耦,使得多个对象都有...
Python设计模式是面向对象编程中的一个关键概念,它是一套被广泛接受的解决常见问题的最佳实践。这本书“精通Python设计模式”提供了深入的洞察力,帮助开发者理解和应用这些模式到他们的Python项目中。设计模式是对...
访问者模式(Visitor Pattern)是一种行为型设计模式,旨在不改变被访问对象结构的情况下,定义对其元素的新操作。访问者模式通过将操作封装在独立的类中,使得新的操作可以灵活地添加,而无需修改对象的结构。访问...