在实际工作中,设计模式的时候,要增加新功能,不要更改以前的代码,这是封装和继承的高度总结。
isinstance('对象',"类") 返回Ture or False
issubclass("儿子类","父亲类")
"""
继承
老张开车去东北
变化:飞机,火车,汽车……
面向对象设计原理
1.开闭原则
开放 关闭
对扩展 对修改
允许增加新功能 不允许修改以前的代码
2. 依赖倒置
使用父类,而不是子类
"""
class Person:
def __init__(self,name):
self.name = name
# def go_to(self,str_type,str_pos):
# if str_type == "汽车":
# Car().run(str_pos)
# elif str_type == "飞机":
# Airplane().fly(str_pos)
def go_to(self, vehicle, str_pos):
"""
使用的是交通工具,而不是汽车飞机等,
所以无需判断具体类型
:param vehicle: 交通方式的父类
:param str_pos: 到大的目的地
:return:
"""
#如果传入的对象,不是交通工具,则退出
if not isinstance(vehicle,Vehicle):
print("传入的不是交通工具")
return
vehicle.transport(str_pos)
class Vehicle:
"""
交通工具
"""
def transport(self, str_pos):
#人为创造一个错误
raise NotImplementedError()
# print("儿子们,必须有这个方法")
class Car(Vehicle):
def transport(self,str_pos):
print("行驶到",str_pos)
class Airplane(Vehicle):
def transport(self,str_pos):
print("飞到",str_pos)
class Bike():
"""
该类没有继承Vehicle
"""
def transport(self,str_pos):
print("骑车到",str_pos)
p01 = Person("老张")
p01.go_to(Car(),"东北")
p01.go_to(Bike(),"东北")
面向对象设计与开闭原则
本文通过一个具体的示例讲解了面向对象设计中的开闭原则。介绍了如何通过继承和多态来实现系统的扩展性而不修改原有代码,遵循依赖倒置原则。
1025

被折叠的 条评论
为什么被折叠?



