![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 84
HoHohong
这个作者很懒,什么都没留下…
展开
-
单例模式
饿汉式适用场景:适合那些在初始化时就要用到的单例的情况,这种方式比较简单粗暴,如果单例对象初始化非常快,而且占用内存非常小的时候这种方式是比较合适的,可以直接在应用启动时加载并初始化。但是,如果单例初始化的操作耗时比较长而应用对于启动速度又有要求,或者单例的占用内存比较大,再或者单例只是在某个特定场景的情况下才会被使用,而一般情况下是不会使用时,使用「饿汉式」的单例模式就是不合适的,这时候就需要用到原创 2017-01-10 21:33:37 · 331 阅读 · 0 评论 -
装饰模式Decorator
定义动态地给一个对象添加额外的功能。就增加的功能来说,装饰模式相比生成子类更为灵活原则Classes should be open for extension, but closed for modification 类应该对扩展开放,对修改关闭。 我觉得这个思想对于面向对象开发来说是非常重要的,几乎很多的设计模式源码设计都离不开这个原则。结构说明 Component抽象组件,是一个接口或者是抽原创 2017-01-12 11:03:37 · 404 阅读 · 0 评论 -
观察者模式
定义简单点讲就是,一个事件订阅观察另一个事件,当另一个事件发生改变的时候,通知当前事件。 有时被称作发布/订阅模式,观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。模式中的角色 抽象主题(Subject),相当于被观察者:它把所有观察者对象的引用保存到一个聚集里,每个主题都可以有任何数量的观察原创 2017-01-10 22:24:19 · 349 阅读 · 0 评论 -
Android设计模式及面向对象原则
分类设计模式分为三种类型: (1)创建型模式5种:单例模式,抽象工厂模式,工厂模式,原型模式,建造者模式。 (口诀:单原建造者,东西二厂) (2)结构型模式7种:适配器模式,桥接模式,装饰模式,组合模式,外观模式,享元模式,代理模式。 (口诀:一器一桥一元一代理;装饰组合外观) (3)行为型模式11种:观察者模式,中介者模式,访问者模式,解释器模式,迭代器模式,备忘录模式,责任链模式,状态原创 2017-01-10 21:31:26 · 393 阅读 · 0 评论 -
策略模式Strategy
模式介绍开发中可能有这样的情况: 实现某一个功能可以有多中算法或者策略, 我们根据不同的功能来选择不同的算法. 针对这种情况, 1.可以在一个类中封装多个方法, 每个方法实现不同算法. 2.通过 if..else if..else.. 条件判断来决定使用哪种算法. 但是这两种都是 硬编码 实现. 并且随着算法的增多类也就变得臃肿, 维护的成本随之变高. 如果需要增加一种新的算法, 必然需要对算原创 2017-01-10 21:42:51 · 319 阅读 · 0 评论 -
抽象工厂模式Abstract Factory
简介有了工厂模式后,怎么还会有多一个抽象工厂呢。可以这么说,工厂模式算是抽象工厂的一个子类,而抽象工厂,可以有很多的子类。抽象工厂就是将工厂的方式抽成一个基类来。举个例子会更好一点。举例举一个汽车生产轮胎引擎的例子。我们先抽象出一个汽车工厂类。public interface CarFactory { ITire createTire(); //创建轮胎 IEngfine cre原创 2017-01-10 21:40:26 · 358 阅读 · 0 评论 -
工厂模式Factory
模式介绍 定义 : 定义一个用于创建的对象的接口, 让子类决定实例化哪个类 场景 : 在任何需要生成复杂对象的地方, 都可以使用工厂方法模式. 复杂对象适合使用工厂模式, 用 new 就可以完成创建的对象无需使用工厂模式. 工厂方法模式完全符合设计模式原则, 降低了对象之间的耦合度, 而且, 工厂方法模式依赖于抽象的架构, 将实例化的任务交由了子类实现.例子说明比如你想要出门,每次出行你都要根据天气原创 2017-01-10 21:39:36 · 368 阅读 · 0 评论 -
原型模式Prototype
简介指从一个样板对象中复制出一个内部属性一致的对象,其实就是克隆。而被复制的对象就叫做原型,多用于创建复杂的或者构造耗时的实例定义用原型实例指定创建对象的种类, 并通过拷贝这些原型创建新的对象.场景 类初始化需要消耗非常多的资源, 这个资源包括数据,硬件资源等, 可通过原型拷贝避免这些消耗 通过 new 产生一个对象需要非常繁琐的数据准备或访问权限, 同样可以使用原型模式 一个对象需要提供给其他对原创 2017-01-10 21:37:33 · 343 阅读 · 0 评论 -
建造者模式Builder
简介一个复杂的对象有很多组成成分, 如汽车, 车轮, 方向盘, 发动机,等等. 为了在构建过程中对外部隐藏实现细节, 就可以使用 Builder 模式将部件和组装过程分离, 使得构建过程和部件都可以自由扩展, 两者之间的耦合也将到了最低. 定义 : 将一个复杂对象的构建与它的表示分离, 使得同样的构建过程可以创建不同的表示. 场景 : 当初始化一个队形特别复杂, 参数特别多, 且有很多参数都具有默原创 2017-01-10 21:35:25 · 283 阅读 · 0 评论 -
代理模式
概述代理模式也是平时比较常用的设计模式之一,代理模式其实就是提供了一个新的对象,实现了对真实对象的操作,或成为真实对象的替身.在日常生活中也是很常见的.例如A要租房,为了省麻烦A会去找中介,中介会替代A去筛选房子,A坐享中介筛选的结果,并且交房租也是交给中介,这就是一个典型的日常生活中代理模式的应用.平时打开网页,最先开到的一般都是文字,而图片等一些大的资源都会延迟加载,这里也是使用了代理模式. 组原创 2017-01-12 16:28:56 · 345 阅读 · 0 评论