自定义ImageLoader

本文介绍了作者在阅读设计模式书籍后,如何运用面向对象设计原则,如依赖倒置、单一职责、开闭原则和接口隔离,来实现一个自定义的图片加载框架ImageLoader。UML设计展示了模块间的依赖关系,代码实现部分则详细说明了各个原则如何在实际代码中落地。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

近期看了一些设计模式相关的书籍,突然有了一个想法,借助所学,去实现一个图片加载框架。

1.UML设计

image.png

从图中可以看到面向对象的几大设计原则
1)依赖倒置原则:高层模块(ImageLoader)只依赖于接口or抽象类(ImageCache),不依赖具体的实现类(DiskImageCache、MemoryImageCache等具体的实现类)
2)单一职责原则:加载业务、不同的缓存业务相分离,实现了解耦、分离
3)开闭原则:修改不同的缓存策略、用户不同的自定义缓存策略,都可以通过继承ImageCache接口类实现具体的缓存类,而且过程中,ImageLoader、ImageCache不再需要改动,只需改动上层调用处(Activity)
4)里氏代换原则:基类出现的地方,都可以通过子类来替代,在ImageLoader内部只有ImageCache的基类对象存在,在activity中调用时,ImageLoader内部传入具体的实现类(DiskImageCache、Memory…)
5)接口隔离原则:使接口功能尽可能的少、分离,此处无体现,当然,如果我们有更多复杂的场景和需求,不要把所有功能接口都写在ImageLoader内部,而是根据不同的业务类型去封装不同的业务接口,实现接口隔离
6)迪米特原则(最小知道原则):一个类对另外一个类的了解,尽可能的少,此

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

itbird01

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值