• python


    归一化设计

    #继承同时具有两种含义
    # 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
  • 相关阅读:
    七大排序的个人总结2
    如何创建自定义的文件类型关联
    ajax原理,验证码生成原理
    读取同一文件夹下多个txt文件中的特定内容并做统计
    为已定图片加水印
    egrep -v "^#|^$"
    QSplashScreen无法背景透明的解决办法(强制StyleSheet生效)
    c++调用python
    Qt对话框_模态/非模态
    雷军:曾日写300个高质量帖 做互联网需7字诀
  • 原文地址:https://www.cnblogs.com/Anec/p/9764380.html
Copyright © 2020-2023  润新知