Android架构之OOP、UML图、EIT笔记
一、OOP
(一)
1、控制反转(IoC:Inversion of Control)
---基类的函数可以主动调用子类的函数,这就是典型的IoC机制
---基类与子类之间,主控权是在基类手上,透过Hook函数来调用子类
---通常基类是攥写在先,而子类则攥写在后,这种前辈拥有主导权,进而[控制]后辈之情形,就通称为[控制反转]
2、API
API这个名词,有3个密切关联的动词
定义(Define)
实作(Implement)
呼叫(Invoke or Call)
根据这3个角度,可将API区分为[主动型]与[被动型]两种
3、接口(Interface)是双方接触的地方,也是双方势力或地盘的界限
谁拥有接口的控制权,谁就掌握控制点,就能获得较大的主动权(或称为主导权),而位居强龙地位;而另一方则处于被动地位,称为弱势的一方,扮演地头蛇角色。
在OOP里,将接口定义为一种特殊的类(Class)
二、架构设计的UML图形设计
(一)图形思考的表达:图形语言
1、图形建模:模型(Model)内含一组基本概念,及其间之关系;如果以图形表示出来,就能发挥图形思考的效益了
2、UML图形语言,协助架构师发挥其图形思考,表达出系统架构(Architecture)的模型
(二)UML的建模工具
1、Astah Professional(原名JUDE)是UML建模工具中,最具有简洁设计、轻便简单、易学好用的。Astah功能强大,支持UML2.X中的图标(Diagram),包括:
(1)Class Diagram(类别图)
(2)Use Case Diagram(用例图)
(3)Statemachine Diagram(状态机图)
(4)Sequence Diagram(顺序图)
(5)Activity Diagram(活动图)
(6)Communication Diagram(通信图)
(7)Component Diagram(模块图)
(8)Deployment Diagram(部署图)
(9)Composite Structure Diagram(组合结构图)
(三)系统分析的含义
1、系统分析的对象是系统所处的[业务领域只是](Domain Knowledge)才是正确的。
[OOA不是要去分析实际的系统;而是用来分析人们对系统的专业认知和做法----从收集到的领域概念来分析出业务内涵]
2、业务(领域)概念
(1)知识的组成要素是[概念](Concepts)
(2)领域知识(Domain Knowledge)的组成要素是领域概念(Domain Concepts)
(3)概念有它的属性(Attribute),概念之间有其关系(Relationship)shi
(4)系统分析(或OOA)就是要分析领域知识里的概念,并以UML的类别(Class)等示来表示。
3、概念(Concept)是抽象的,代表一群实体,是沟通的重要媒介。
概念代表一个群体---[类别](Class),人们藉由天赋的能力运用经验去想到其所代表的实际东西---[对象](Object)
不仅上述的名词概念而已,其相关的动作也常是重要概念。动词常常代表一项事件(Event)的发生,而人们常从人、事、时、地、物等去描述一个事件的发生情境。譬如,吃仙丹就有动作(吃)的对象---仙丹,动作的主角---嫦娥,当然还有地点、时间,甚至仙丹来源等等。
三、EIT
(一)
1、EIT造型就像比类(Class)大的集装箱
2、就像集装箱也有不同的形式(即变形)
3、EIT造型有2种变形,如下
(1)
(2)
(3)
4、造型特性:
形式简单、内涵复杂、重复组合