移动架构师之EIT造形与设计模式笔记

241 篇文章 5 订阅

一、

(一)模式(Pattern)是较大的结构

 

(二)结构形式愈大,通用性愈小

(三)从EIT造形,组合出设计模式

 1、对架构师来说,EIT是一种技能,是一种思考的能力。思考的能力才是架构师所要掌握的技能。设计模式只是架构师用来练习EIT造形模式的标的。

2、相对于原子和分子,EIT造形属于原子层级,设计模式(Design Pattern)属于分子层级

3、

(1)左边EIT造形负责<创建>右边EIT造形的对象(Object)

(2)就称左边的EIT造形为:Factory(工厂)EIT

(3)而称右边EIT造形为:Product(产品)EIT

 

(四)介绍GoF设计模式

模式告诉我们理想的方案像什么、有哪些特性:同时也告诉我们些规则,可以依循之,而产生适合于环境的具体方案

 

(五)GoF的Template Method模式

1、Template Method模式的基本要素

(1)控制反转(IoC:Inversion of Control)是<基类/子类>结构里的重要机制。Template Method模式是实现IoC的一种基本模式

 

 

2、Template Method的范例:

(1)Android+TM模式例子 一

Android 的绘图使用画布(Canvas)来把图显示于View的窗口里,并且从View类别而衍生子类别,提供更多功能将图形或图片绘制于画布上。

在View类别里有个onDraw()函数,View类别体系里的每一个类别都必须覆写(Override)这个onDraw()函数,来执行实际绘图的动作

 

 

 

 

(五)GoF的Observer模式

1、定义对象间的1:N依赖关系,以便当一个主题对象(如A)的状态发生改变时,所有依赖于它的对象(如B,C,D...)都得到通知,然后可向主体对象(A)取得最新状态

 

如果Observer是个纯粹抽象类别(Pure Abstract Class),它扮演接口角色,就相当于java语言的interface机制。

虽然父类别Observer已经变为了IObserver接口了,其卡榫函数还是存在那里,只是形式有些变化而已。

 

(六)GoF的Composite模式

1、此模式能建立多层级的包含关系(即多层级Whole-part关系)

2、在自然界种常见这种关系,例如,树叶是树的一部分,但树叶又是个整体,其内含着叶脉、叶绿素等[部分]对象

 

从这个图形中,可以看出这些对象可依其角色而分为两类:

(1)<Leaf物件>:如上图里的[白色]类别之对象,它们不具有Whole之角色,只具有Part之角色。这通称为[基本组件](Primitive Component)

(2)Composite物件:如上图中的[灰色]类别之对象,它们具有Whole之角色,也可能具有Part之角色。这通称为[复合组件](Composite Component)

(3)因此,只需定义两个类别---Leaf及Composite类别即行。

例如,上图里[树]、[叶]等都是Composite的子类别,而[枝]、[叶脉]等则是Leaf的子类别

 

3、在企业界,最典型的例子是[物料表](Bill of material简称BOM)

例如,[车前灯]的BOM表,如下图:

(1)一个灯身可以包括多个leaf:

(2)将leaf变为EIT造形

(3)为什么是1对多呢?

   Composite与AbstractLeaf是1对多的关系,说明1个Composite包含多个Leaf

   右侧Composite到Composite的箭头表示1对N的关系,说明1个Composite可以包含多个Composite

(4)变为EIT造形

(5)两个1对N关系都是一样的,所以可以将它们合并起来

Composite对Compoment的关系是1对N,

而Leaf继承自Compoment,所以Composite对Leaf的关系也是1对N

4、View体系含有一个Composite模式

(1)在Android平台里,像Button或ImageButton等屏幕控件皆通称为View

(2)多个View能组合在一起,就会各种排列方式,即称为[布局](layout)

(3)这Layout类别就是从ViewGroup父类衍生出来的。

5、

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值