android 工厂设计模式,android-学渣系列- 设计模式学习 - 抽象工厂

1446ad7f09bc

1111.jpg

1446ad7f09bc

image.png

提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们的具体的类

这是抽象工厂的定义

我现在吧这个和工厂模式一起拿出来

1446ad7f09bc

image.png

他的模式方法就是定义一个创建对象的接口,让子类决定实例化哪一个类

public abstract class network {

public Http getHttp(){

return null;

}

}

public class retrifithttp extends network {

@Override

public Http getHttp() {

return super.getHttp();

}

}

public abstract class iFactporynetwork {

public abstract network getnetwork();

public abstract newworkgetHttps getnetworks();

}

public class httpIfactory extends iFactporynetwork {

@Override

public retrifithttp getnetwork() {

return null;

}

@Override

public newworkgetHttps getnetworks() {

return null;

}

}

/**

* 工厂模式,

* 思考一下 下面的方法,比如以后加入新的方式 只需要在接口中加入新的方法

* 然后新建相应的工厂模式就可以

*

* 什么是工厂模式呢

* 定义了一个常见对象的接口,然后让他的子类决定实例化哪一个类吗,

* 也就是上面我们写的 httpIfactory httpsIfactory 来决定创建哪一个对象

*

* 对我们来说 network 就是一个对象,我们封装这个对象之后,

* 然后通过接口的子类来创建这个对象, 以后在添加新的对象 我们只添加就可以完成功能

* 而且这个是创建对象的模式哦 大家记清楚

*

*/

iFactporynetwork iFactporynetwork = new httpIfactory();

network network = iFactporynetwork.getnetwork();

如果会添加新的对象的时候就可以仿写retrifithttp 这样就达到了 我们的开放封闭原则, 写到这里 我们在来看一下 这个是抽象工厂的区别是什么?

区别

工厂模式针对的是一个产品 抽象针对的是 抽象工厂创建的是一系列 相互依赖的对象接口

相同点

都是创建型模式,一个是创建一个对象,另一个是创建多个产品,过程都是现有产品,然后抽象这个产品的工厂属性, 实现的方式其实都是差不多的。只不过抽象的方便与扩展,那么抽象工厂的缺点也是很明显的,那就是抽象工厂基类包含了所有抽象产品的抽象方法。 这也导致了 如果我们 添加的话,会导致其他的抽象方法扩展。 毕竟实现接口就要实现内部所有方法,当添加很多产品的时候,就需要添加很多的地方。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值