美文网首页Android知识Android开发Android技术知识
封装工厂类创建BottomNavigationBar的addIt

封装工厂类创建BottomNavigationBar的addIt

作者: AWeiLoveAndroid | 来源:发表于2017-06-08 16:42 被阅读721次

一、工厂模式可以分为三类:

1)简单工厂模式(Simple Factory)

2)工厂方法模式(Factory Method)

3)抽象工厂模式(Abstract Factory)

这三种模式从上到下逐步抽象,并且更具一般性。

二、它们之间的区别

★  工厂方法模式:

●  一个抽象产品类,可以派生出多个具体产品类。

●  一个抽象工厂类,可以派生出多个具体工厂类。

●  每个具体工厂类只能创建一个具体产品类的实例。

★  抽象工厂模式:

●  多个抽象产品类,每个抽象产品类可以派生出多个具体产品类。

●  一个抽象工厂类,可以派生出多个具体工厂类。

●  每个具体工厂类可以创建多个具体产品类的实例。

★  区别:

●  工厂方法模式只有一个抽象产品类,而抽象工厂模式有多个。

●  工厂方法模式的具体工厂类只能创建一个具体产品类的实例,而抽象工厂模式可以创建多个。

两者皆可。

三、具体的实现方式:

比如我要创建一个5个tab的底部导航页的效果,我的代码如下:

这样写很麻烦,addItem里面很多相似的代码,代码的可读性和可维护性不是很高。

分析一下:

由于这里有很多相同的结构,我第一个想到的是通过工厂方法,写一个工厂类,需要的时候就去生成这些item。闲话不说了,开干。

(一)第一步:写一个工厂的接口(由于时间关系,我这个命名不是很规范),这里写了三个抽象方法,分别是普通方式,list集合,map集合形式传参数进来

(二)第二步:写一个工厂类的实现类(由于时间关系,我这个命名不是很规范)

由于简书复制代码太麻烦,我就贴图吧,这个更直观,请各位见谅。

(三)第三步:写一个工厂类的实现类,真正封装new bottomNavigationBar.addItem(XXX)的逻辑

(四)第四步:写一个通用的常量管理类,用于区分不同的类型。

(五)第五步:在代码里面实现,有没有发现比以前简单多了。简洁高效维护性强。

总结:就是这么简单,有没有学会呢?这里是不是标准的工厂模式,欢迎大神来指教,如果我的说法不正确的地方,欢迎大神提出意见。

附上引用库地址: BottomNavigationBar 的仓库地址

本项目demo下载请点击这里:

https://github.com/AweiLoveAndroid/CustomBottomNavigationBar

相关文章

  • 封装工厂类创建BottomNavigationBar的addIt

    一、工厂模式可以分为三类: 1)简单工厂模式(Simple Factory) 2)工厂方法模式(Factory M...

  • java工厂模式

    工厂模式有静态工厂方法,工厂方法和抽象工厂模式。静态工厂就是把创建的动作给封装到一个类里面了。必须有对象才能创建,...

  • 工厂模式

    工厂模式 :有工厂方法和抽象工厂两种常见的模式,属于创建类设计模式。用于封装对象创建的过程,我们不用知道对象是如果...

  • 设计模式简要

    1、简单工厂模式:用于创建单个对象,根据不同的特点创建不同的类。 2、策略模式:用来封装算法,几个类有相同的算法。...

  • 不是学习工厂模式最简单的指南

    引言 工厂模式,简单的理解,就是封装通过new方式创建对象的代码。工厂模式可分为三类: 简单工厂(Simple F...

  • JS创建对象

    工厂模式 由于在ECMAScript无法创建类,所以用函数的封装以特定接口创建对象 问题:解决了创建多个相似对象的...

  • 设计模式——工厂模式

    设计模式——工厂模式 工厂模式核心是封装对象的创建接口,将new对象的操作封装起来,方便创建使用、管理对象。 工厂...

  • 3. 设计模式的代码表示之一

    一、工厂模式(【客户类】→【工厂类/工厂方法】→创建【服务类】) 二、抽象工厂(【客户类】→【抽象工厂类】→【工厂...

  • 2019-04-11设计模式-工厂模式

    通过让子类决定该创建的对象是什么,来达到将对象创建过程封装的目的。一般分为三类:简单工厂模式、工厂方法模式、抽象工...

  • JS设计模式之抽象工厂模式

    定义:抽象工厂模式就是:围绕一个超级工厂类,创建其他工厂类;再围绕工厂类,创建实体类。相较于传统的工厂模式,它多出...

网友评论

    本文标题:封装工厂类创建BottomNavigationBar的addIt

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