FIT软件开发

2023-02-15,,

1.baidu,google 术和道

2.FIT: future integrated Technology

3.集体检视 > commiter

4.高内聚,低耦合 => 太极 => 存在上帝类或者散弹枪

5.open,close开闭原则 以我为主的设计思路 => 我跟别人都无关

6.lips 一切皆可以替换

7.DIP 我来定义游戏规则

eg:举一个杯子的列子

A调用B是谁依赖谁?B (错)

```

class Cup{

}

class Human {

  void hold(Cup cup)

}

Human => cup

```

```

interface Cup {

}

class GlassCup implements Cup {

}

class Human {

  void hold(Cup cup)

}

Human -> cup << GlassCup(实现)

Interface Human {

}

class Asian Implements Human {

}

永远不可能(不要)实现调用实现 => Asian 无法调 GlassCup

抽象调用抽象

Asian >> human ->Holdable -> Cup >> GlassCup

              -> phone >> HuaweiPhone

A =>B 

接口化之后,A调用B,表示 B依赖于A

Holdable 标准,得标准者得天下

(术)实现 Dependency Inversion 依赖倒置

             Inversion of Control 控制反转

             new B 的动作 Spring: IOC Contrainer 依赖注入

Genericable: 泛化接口

SPI 接口所有权是使用方

API 接口所有权属于实现方

standard 接口所有权属于标准

```

正方形是长方形 => 继承关系可能是貌合神离的

```

Class Rectangle {}

Class Squre extends Rectangle {}

void rectangle_size_should_be_20_when_width_5_height_4 (){

  //given

  rect.setWidth(5).setHeight(4);

  //when

  int size = rect.getSize()

  //then

  assert.equal(20,size)

}

TDD

```

polymorphicable  一切皆可以替换

Duck typing 里氏替换

is 是基于行为的

依赖皆为抽象

1.扩展可以替换

2.业务可以替换

3.韧性可以替换

SPI/Standard可以替换

API可以替换

eg

```

ATM: Deposit & withdraw money

Role Orientend interface Design  (面向角色接口设计)

Function based

```

大象模式 SPI 基于扩展开放

蚂蚁模式  各自实现自己的抽象

函数式编程

FIT软件开发的相关教程结束。

《FIT软件开发.doc》

下载本文的Word格式文档,以方便收藏与打印。