美文网首页健身&运动 头条
The understanding of superman an

The understanding of superman an

作者: mamba架构算法 | 来源:发表于2016-07-19 18:11 被阅读24次

    在这暧昧的时代,在这牛逼哄哄的社会,怪物横行的世界,我们需要有超人来解决问题。

    于是我们可以new一个超人对象出来,其实就像new一个女朋友出来。

    首先,我们需要定义一个超人类,天降彩虹,超人诞生,伴随着超人的是一个超能力的诞生。于是,我们可以将超人的超能力也定义为一个类。

    class superman{} //超人类

    class power{} //超能力类

    一个超人有许多可以具有许多超能力,但是我们举例说明的话,只列举一个超能力类,于是超能力类变成了下面的样子:

    超人的超能力类

    我们定义了两个受保护的属性,并且在构造方法中初始化这两个属性,代表超人的超能力。

    接下来,我们定义超人类

    超人类

    超人类:我们定义一个power作为超人的超能力,在构造方法中,我们new一个超人的超能力类,实例化出来超人的超能力。

    在面向对象中,这种实例化一个对象的同时,也实例化了另外一个对象,我们称之为“依赖关系”,也就是超人类依赖了超能力类。

    所谓依赖就是:我依赖了你,我就离不开你(是不是很逗比)

    接下来,我们思考:每个超人的超能力都是不一样的,一个超人也可以有多个超能力,比如

    (1):飞行  属性有 飞行速度 飞行时间

    (2):力气  属性有 力气值

    (3):射击  属性有 伤害值 射击距离  射击个数

    等等.......

    飞行超能力类 射击超能力类

    那么我们在实例化超人类的时候就优点麻烦了:

    超人类实例化多个超能力类

    1:这样的结果是 我们在实例化超人的同时实例化了很多其他的类,这样并不好:

    2:如果我们需要更多有针对性的超人,或者改变超人的超能力方法,我们必须重新改造超人类。

      解决方法

    // 我们不应该在类的内部固化超人类的超能力初始化行为,而应该在由外部控制

    // 在超人类中植入一个接口,一个模具提供一个接口,这个接口相当于一个芯片,

    // 能够提升,提高超人的某一种能力

    //这样依赖关系就转向了外部,这种由外部负责依赖需求的行为,我们称之为依赖反转(loC)

    超人类的模组类

    这样我们在实例化超人类的时候就变成了这样:

    超人类实例化模组类(工厂类)

    //可以看得出 我们在实例化超人类的时候,不需要实例化那么多第三方类

    //只需要实例化一个工厂类,由工厂类来实例化第三方类

    超人的超能力只需要由工厂来提供即可。简单工厂已经解决了很多问题,但是这其实只是一个开始而已。

    (未完待续)

    相关文章

      网友评论

        本文标题:The understanding of superman an

        本文链接:https://www.haomeiwen.com/subject/csgmjttx.html