竹子建站seo设置怎么做,北京网站建设哪家好,aspcms是网站什么漏洞,网站建设 辉煌电商前言
1. 单例模式#xff08;Singleton Pattern#xff09;#xff1a;保证一个类只有一个实例#xff0c;并提供一个全局的访问点。
2. 工厂模式#xff08;Factory Pattern#xff09;#xff1a;定义一个创建对象的接口#xff0c;但由子类决定要实例化的类是哪一…前言
1. 单例模式Singleton Pattern保证一个类只有一个实例并提供一个全局的访问点。
2. 工厂模式Factory Pattern定义一个创建对象的接口但由子类决定要实例化的类是哪一个。
3. 观察者模式Observer Pattern定义对象之间的一对多依赖关系使得当一个对象的状态发生改变时所有依赖于它的对象都会被自动通知并更新。
4. 装饰器模式Decorator Pattern动态地给一个对象添加一些额外的职责而不会影响到其他对象。
5. 策略模式Strategy Pattern定义一系列的算法将每个算法封装起来并使它们可以相互替换。
6. 命令模式Command Pattern将请求封装成一个对象从而使用户可以用不同的请求对客户进行参数化。
7. 适配器模式Adapter Pattern将一个类的接口转换成客户希望的另外一个接口使得原本由于接口不兼容而不能一起工作的类能够一起工作。
8. 外观模式Facade Pattern为子系统中的一组接口提供一个统一的接口从而使得子系统更加容易使用。
9. 状态模式State Pattern允许一个对象在其内部状态改变时改变其行为。
10. 模板方法模式Template Method Pattern定义一个操作中的算法的骨架而将一些步骤延迟到子类中实现。
这些是Python中常用的设计模式通过使用这些设计模式可以提高代码的可读性、可维护性和重用性。
外观模式
外观模式是一种结构型设计模式它为复杂子系统提供一个简化的接口使得客户端可以更容易地使用这个子系统。
具体实例一
# 子系统A
class SubsystemA:def operation_a1(self):print(SubsystemA: Operation A1)def operation_a2(self):print(SubsystemA: Operation A2)# 子系统B
class SubsystemB:def operation_b1(self):print(SubsystemB: Operation B1)def operation_b2(self):print(SubsystemB: Operation B2)# 外观类
class Facade:def __init__(self, subsystem_a, subsystem_b):self.subsystem_a subsystem_aself.subsystem_b subsystem_bdef operation(self):print(Facade: Operation)self.subsystem_a.operation_a1()self.subsystem_a.operation_a2()self.subsystem_b.operation_b1()self.subsystem_b.operation_b2()# 客户端代码
if __name__ __main__:# 创建子系统的实例subsystem_a SubsystemA()subsystem_b SubsystemB()# 创建外观实例并传入子系统facade Facade(subsystem_a, subsystem_b)# 客户端通过外观接口调用子系统的操作facade.operation()SubsystemA和SubsystemB是两个独立的子系统它们提供了一些操作。Facade是外观类它封装了子系统的操作并提供了一个简单的接口operation给客户端使用。客户端只需要通过外观类的接口调用操作而不需要了解子系统的内部实现。
应用场景 当一个复杂系统有许多子系统而客户端只关心与一个高层接口交互时。当需要将子系统的接口与客户端分离以便子系统的变化不影响客户端。