
java设计模式
北京流年
每天进步一点点,不积跬步无以至千里
展开
-
Android单例模式总结
定义保证一个类只有一个实例,并提供一个全局访问点具体写法单例模式一般分为两种形式,第一种是饿汉式,第二种是懒汉式。(当然有很多其他的博客或者书写的说,单例模式还分为其他的什么枚举啊等形式,但是我们这里只讲主流的,也就是我们项目中用的最多的两种形式)我们先来看看第一种饿汉式public class Singleton_EHanShi { public static void ma...原创 2019-10-16 14:17:04 · 227 阅读 · 0 评论 -
最简单的观察者模式--转载
public class ObserveTest {public static void main(String[] args) {Boss boss = new Boss("刷新");boss.attach(new NBAObserver(boss));boss.attach(new FIFAObserver(boss));boss.notifyThem();转载 2015-10-27 17:06:01 · 449 阅读 · 0 评论 -
依赖注入和控制反转
其实很早之前就接触过这两个概念,但是一直不明白里面的含义,依赖什么?注入什么?谁注入谁?控制反转又是什么意思?反转和正传表示啥?自从干了编程,不知道你们有没有发现,我反正是发现了,我的头一天比一天变大了。Ioc-Inversion of Control,控制反转DI-Dependency Injection,依赖注入1.如何理解Ioc/DI要想理解这两个概念,先得弄清楚如下的问题。...原创 2018-11-15 16:54:15 · 888 阅读 · 0 评论 -
Java设计模式之工厂方法模式
定义:定义一个用户创建对象的接口,让子类来决定实例化哪一个类,Factory Method使一个类实例化延迟到子类------研磨设计模式定义二:定义一个用于创建对象的接口,让子类决定实例化哪个类---------Android源码设计模式解析与实现思考:如何将一个类实例化延迟到子类?先上工厂方法模式的UML图然后我们看一个例子:小车里面,我对奥迪是有情怀的,我就觉得好看,有...原创 2018-11-16 11:03:23 · 138 阅读 · 0 评论 -
android 设计模式之六大原则
设计模式原则1.单一原则就一个类而言,引起类变化的原因仅有一个。简单来说,一个类应该是一组相关性很高的函数,数据的封装2.开闭原则软件中的对象(类,模块,函数)应该对扩展开发,多修改关闭(对外可扩展,对内不可修改) 例如:网络请求框架中,我们应该定义一个接口,然后用不同的第三方框架来实现,3.里氏替换原则父类中出现的地方,子类都可以出现。主要体现的地方就是实现。策略模式就是...原创 2018-12-22 15:54:34 · 418 阅读 · 0 评论 -
android之装饰设计模式
定义在不使用继承的前提下,动态的扩展一个类的功能,就叫做装饰设计模式。android里面使用装饰设计模式的有Context,ListView添加和删除头部尾部布局,还有IO流等等。那么到底如何动态的扩展一个类的功能呢?请看如下分析。...翻译 2018-12-28 21:05:37 · 223 阅读 · 0 评论 -
android设计模式之适配器模式
早期使用listview的时候,就需要设置adapter,但是当时一直不明白为何要叫adapter?而且也觉得我们自己设置布局,我们自己绑定数据,就能显示到列表上,觉得写的很神奇。直到后来有人跟我说了适配器模式。我才渐渐明白…定义将一个类的接口,转变为客户希望的另外一个类的接口。适配器模式使得原本因接口不兼容不能在一起功能的类可以在一起工作。其实用大白话来解释就是:我已经定义了标准,...原创 2018-12-28 22:04:41 · 221 阅读 · 0 评论 -
android 一个轻巧的MVP框架
概述因为写了很多小app,业务逻辑并不是很复杂,涉及到的技术也不多,所以一直都想弄一个轻巧点的框架,只需要请求网络,拿到网络数据即可。于是就有了下边这篇文章,不喜勿喷,个人记录。背景: 现在比较流行的框架当然是MVP,网上有很多demo,我觉得讲的比较好,扩展性高,耦合性低就有一个MVPArms这个框架不仅仅讲了mvp模式,还有比如加载图片怎样降低耦合等,在我们写不出比作者更优秀的框架之前...原创 2019-01-03 19:49:44 · 227 阅读 · 0 评论 -
android设计模式之原型模式
定义使用拷贝来创建一个新的对象背景 其实在android的源码里面,我们使用很多的Intent,就使用了原型设计模式,使用原型设计模式其实就是减少了我们手动设置对象的属性值的繁冗代码。分析第一步实现Cloneable接口,重写clone方法 public class User implements Cloneable { @Override protected ...原创 2019-02-27 19:47:23 · 258 阅读 · 0 评论