zoukankan      html  css  js  c++  java
  • python编程设计模式之接口类和抽象类

      接口类

    """
        接口类  是一种编程设计模式,在python原本没有接口类 借用Java思想创建的一种规范设计模式
                支持多继承,进行多方面规范
    """

      例子:

    from abc import abstractmethod, ABCMeta
    
    
    class Clergy(metaclass=ABCMeta):  # 规范子类都要有cure方法
        @abstractmethod   # 装饰要规范的方法
        def cure(self, HP):   # 规范方法必须要pass,不能实现
            pass
    
    
    class Holy(Clergy):
        def cure(self, HP):
            HP += 100
            return HP
    
    
    class Discipline(Clergy):
        def cure(self, HP):
            HP += 100
            return HP
    
    
    class Shadow(Clergy):
        def zhiliao(self, HP):
            HP += 100
            return HP
    
    
    # 创建牧师的三种分支
    holy = Holy()
    discipline = Discipline()
    # shadow = Shadow()   # Shadow类没有规定方法cure,不能实例化,实例化就会报错提醒
    # 都有治疗的技能
    print(holy.cure(10))  # 110
    print(discipline.cure(20))   # 120

      抽象类

    """
        抽象类  python支持抽象类,一般规范单继承
    """

      例子

    import abc
    
    class Clergy(metaclass=abc.ABCMeta):  # 规范子类都要有cure方法
        @abc.abstractmethod
        def cure(self, HP):  # 规范方法可以有一定代码功能
            HP += 100
            return HP
    
    
    class Holy(Clergy):
        def cure(self, HP):
            HP += 100
            return HP
    
    
    class Discipline(Clergy):
        def cure(self, HP):
            HP += 100
            return HP
    
    
    class Shadow(Clergy):
        def zhiliao(self, HP):
            HP += 100
            return HP
    
    
    # 创建牧师的三种分支
    holy = Holy()
    discipline = Discipline()
    # shadow = Shadow()   # Shadow类没有规定方法cure,不能实例化,实例化就会报错提醒
    # 都有治疗的技能
    print(holy.cure(10))  # 110
    print(discipline.cure(20))  # 120
  • 相关阅读:
    RedMine 1.3.3 安装攻略
    .net 4.0 framework 安装时发生严重错误
    MYSQL安装配置
    接口隔离ISP
    依赖倒置DIP
    VS2010添加WP模板
    VS2012尝鲜
    OCP开放闭合
    单一职责
    里氏替换
  • 原文地址:https://www.cnblogs.com/zxc-Weblog/p/8326121.html
Copyright © 2011-2022 走看看