设计模式

内容概要

  一、什么是设计模式

  二、接口

  三、面向对象设计的SOLID原则

  四、设计模式的归纳命名

 

1、什么是设计模式

  设计模式是对软件开发过程中普遍出现的各种问题,进行的解决方案。每一个设计模式都是系统的命名、归纳、解释和评价了面向对象系统种一种重要的重复出现的设计。

  简单的理解,就是每个设计模式是对不同问题解决方法的归纳

 

2、接口

  接口规定了它子类的格式。

from abc import ABCMeta, abstractmethod

# 定义一个抽象类(接口)
class Payment(metaclass=ABCMeta):
    @abstractmethod  # 抽象方法
    def pay(self, money):
        pass


class WeChatPay(Payment):  # 继承了Payment的子类必须实现接口规定的pay方法
    def pay(self, money):  # 并且参数必须保持一致
        print("微信支付了{}元".format(money))


class ZhiFuBaoPay(Payment):
    def pay(self, money):
        print("支付宝支付{}元".format(money))
        
        
pay1 = WeChatPay()
pay1.pay(100)

 

3、面向对象设计的SOLID5大原则

  (1)开放封闭原则:一个软件实体如类、模块和函数都应该对扩展功能开放,对代码修改关闭。即软件实体应该在尽量不修改源代码的基础上拓展功能。

  (2)里氏替换原则:所有引用父类的地方必须可以透明的引用其子类的对象。

  (3)依赖倒置原则:高层模块不应该依赖底层模块,二者都应该依赖其抽象;抽象不应该依赖于细节,细节应该依赖于抽象。

  (4)接口隔离原则:使用多个专门的接口,而不使用一个总接口。即客户端不应该依赖其不需要使用的接口。

  (5)单一责任原则:只允许最多一种因素影响到类的变更。即一个类只负责一个职责。

 

from abc import ABCMeta, abstractmethod

# 定义一个抽象类
class Payment(metaclass=ABCMeta):
@abstractmethod # 抽象方法
def pay(self, money):
pass


class WeChatPay(Payment): # 继承了Payment的子类必须实现pay方法
def pay(self, money): # 并且参数必须保持一致
print("微信支付了{}".format(money))


class ZhiFuBaoPay(Payment):
def pay(self, money):
print("支付宝支付{}".format(money))


pay1 = WeChatPay()
pay1.pay(100)

设计模式

上一篇:DOS操作


下一篇:.Net 和 C#的简单了解