Python 设计模式——理解面向对象编程

2021-01-06  本文已影响0人  rollingstarky

面向对象编程

面向对象的编程范式引入了对象的概念,对象具有属性和用来处理属性的成员函数。
比如对象 Car 拥有多种属性,如 fuel_level(油位)、is_sedan(是否为轿车)、speed(速度)、steering_wheel(方向盘)和 coordinates(坐标)等。
同时还拥有一些方法,比如 accelerate() 方法用来提升速度,takeleft() 方法让车左转等。

在 Python 中,一切皆对象。每个类的实例或变量都有它自己的内存地址或身份。对象就是类的实例,应用开发就是通过对象交互来实现目的的过程。

对象

方法

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    def get_person(self,):
        return f"<Person ({self.name}, {self.age}>)"


p = Person("John", 32)
print(f"Type of Object: {type(p)}, Memory Address: {id(p)}")
print(p.get_person())
# => Type of Object: <class '__main__.Person'>, Memory Address: 140586467650144
# => <Person (John, 32>)

主要概念

封装

多态

>>> a = "John"
>>> b = (1, 2, 3)
>>> c = [3, 4, 6, 8, 9]
>>> print(a[1], b[0], c[2])
o 1 6

继承

设计原则

开放/封闭原则
类或对象及其方法对于扩展来说应该是开放的,对于修改来说应该是封闭的。
即在开发软件的时候,一定确保以通用的方式来编写类或模块,以便需要扩展类或对象行为的时候不必修改类本身。

优点:

控制反转原则
高层级的模块不应该依赖于低层级的模块,应该都依赖于抽象。细节依赖于抽象,而不是抽象依赖于细节。
该原则建议任何两个模块都不应以紧密方式相互依赖。基本模块和从属模块应当在它们之间提供一个抽象层来耦合。类的细节应描绘抽象。

优点:

接口隔离原则
客户端不应依赖于它们不需要使用的接口。

优点:

单一职责原则
类的职责单一,引起类变化的原因单一。
当我们在开发类时,它应该为特定的功能服务。若一个类实现了两个功能,则最好将它们分开。

优点:

替换原则
派生类必须能够完全取代基类。
当应用程序开发人员编写派生类时,该原则的含义就是他们应该扩展基类。此外,派生类应该尽可能对基类封闭,以致于派生类本身可以替换基类而无需修改任何代码。

上一篇 下一篇

猜你喜欢

热点阅读