python - class类(归一化设计)

 

归一化设计

#继承同时具有两种含义
# 1.继承基类的方法,并且做出自己的改变或者扩展
# 2.声明某个子类兼容于某个基类,定义一个接口类,子类继承接口类,并且实现接口中定义的方法.

# 实践中,继承的第一种含义意义并不很大,甚至常常是有害的,因为它使得子类与基类出现强耦合.
# 继承的第二种含义非常重要,它又叫"接口继承"
# 接口继承是指上是要求做出一个良好的抽象,这个抽象规定了一个兼容接口,使得外部调用者无需关心具体细节,可一视同仁的处理实现了特定接口的所有对象
# 这个程序设计上叫做归一化.

# 归一化使得高层的外部使用者可以不加区分的处理所有接口兼容的对象集合
# 就好像linux的泛文件概念一样,所有东西都可以当做文件处理,不必关心它是内存、磁盘、网络还是屏幕

# 具体示例:(导入模块)
import abc

#写一个接口类,定义了两个函数方法,将两个函数方法修饰(为了规范子类定义)
class All_file(metaclass=abc.ABCMeta):

    @abc.abstractmethod
    def read(self):
        pass

    @abc.abstractmethod
    def write(self):
        pass

class Disk(All_file):
    def read(self):
        pass
    def write(self):
        pass

class Mum(All_file):
    def read(self):
        pass

#Disk()子类 将父类的规定的函数方法构造了
A = Disk()
#Mum()zi子类 只将父类的read()方法构造了
B = Mum()

#这是B就被报一下错误!缺一个write方法.
#TypeError: Can't instantiate abstract class Mum with abstract methods write

 

转载于:https://www.cnblogs.com/Anec/p/9764380.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值