Python 多态的理解和应用 — 检测系统中是否含有输入的“用例设计方法”,一个案例解决!

1.多态的作用:
每个子类都有相同的方法和属性,父类可以在不知道所用哪个子类的情况下,对子类的属性进行访问,在案例中以达到检查用例设计方法的功能。

2.如果不采用多态,又想要到达下面文件类型检测的功能,那么每一个类你都要重复的去添加判断、抛出异常的代码。非常的繁琐,但是采用多态,N个子类只需要一个父类即可到达这样的效果。
例如:

3.采用多态,检测文件类型,类型正确则通过,错误则抛出异常。
代码:

class Method:

    def __init__(self, usage):
        self.mt_usage = usage
        if self.mt_usage == self.usage:
            print("系统中有 ‘%s’ 用例设计方法"%(usage))

        else:
            raise Exception("没有 ‘%s’ 用例设计方法"%(usage))


class Equal(Method):
    usage = "等价类"
    """等价类用例设计方法"""
    pass


class Edge(Method):
    usage = "边界值"
    """
    边界值分析方法:
    (1)输入条件明确给定了一个值的取值范围,或规定了个数。
        例如:活动名称长度,不能超过10个字符。
    (2)输入条件明确了有一个有序集合。
        例如:百度搜索结果中,有筛选功能:今天,近一天,近两天,一周内,一个月内。
    """


class Estimate(Method):
    usage = "判定表法"
    """
    判定表法适用情况:多种条件(原因)组合下,产生一种结果。
    """
    pass


class Causality(Method):
    usage = "因果图"
    """
    因果图法适用:适合于检查软件输入条件的各种组合情况。
    """


# 实例化对象,传入用例设计方法,检测系统中是否有该方法。
C_lity = Causality("因果图")

run:

系统中有 ‘因果图’ 用例设计方法

输入错误的用例设计方法。
代码:

# 实例化对象,传入用例设计方法,检测系统中是否有该方法。
C_lity = Causality("因图")

run:

    raise Exception("没有 ‘%s’ 用例设计方法"%(usage))
Exception: 没有 ‘因图’ 用例设计方法

你可能感兴趣的:(Python,python,设计模式,多态)