EIT造型 + 内涵 = 设计模式

一、什么是EIT造型?

首先,我们先来了解类别有哪些?

  • 一般(具象)类别:一般的函数。
  • 抽象类别:有一个或者多个函数是抽象的。
  • 纯粹抽象类别:所有函数都是抽象。也称接口(Interface)、卡榫函数(Hook函数)、抽象函数。

其次, 主动型 VS. 被动性API

  • 主动型API:基类函数可以主动调用子类的函数。
  • 被动性API: 子类函数调用基类的函数。

第三,IoC(Inversion of Control)机制

  • IoC(Inversion of Control)机制,称为控制反转。即基类控制子类。
  • 属于主动型API

了解以上三个概念,我们开始EIT造型了(以汽车来做比喻)

  • E : Engine. 引擎 ,基类。
  • I : Interface. 接口
  • T : Tire. 轮胎,子类。
图1.png

基本型:如图2

图2.png

EIT变形(一):如图3


图3.png

EIT变形(二):如图4


图4.png

下面我们来谈谈EIT造型与设计模式的关系:

以 (Factory Method) 工厂模式 为例:


图5.png
图6.png

工厂模式是由两个EIT造型组成的。而两个EIT造型是怎么联系?如图7


图7.png

图7中,实线的箭头表示 ConcreateCreator子类 实现 Creator基类 的抽象函数。虚线的箭头表示 new ConcreteProduct对象。

代码如下:

public abstract class Creator {

    public Product anOperation(){
        return factoryMethod();
    }
    public abstract Product factoryMethod();

}
public class ConcreteCreator extends Creator {

    @Override
    public Product factoryMethod() {
        Product add = new ConcreteProduct();
        return add;
    }
}

public abstract class Product {

    public float numberA;
    public float numberB;
    public abstract float calCulate();
}
public class ConcreteProduct extends Product {
    @Override
    public float calCulate() {
        return numberA + numberB;
    }
}
//调用
 Creator creator = new ConcreteCreator();
        Product product = creator.anOperation();
        product.numberA = 10;
        product.numberB = 30;
        System.out.println("addSum = "+ product.calCulate()); // 40
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,261评论 25 709
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,906评论 18 399
  • 转自:http://blog.csdn.net/jackfrued/article/details/4492194...
    王帅199207阅读 12,738评论 3 93
  • 最害怕的不是追梦的时候丢了梦,而是在追梦的时候丢了自己… 今天的自习室出奇的安静,看书的效率也高了不少,手机上...
    笔尖的琴阅读 3,262评论 7 4
  • 静 谧 ...
    闽娟子阅读 1,690评论 2 2