设计模式
文章平均质量分 84
设计模式
Yawn__
“就像热爱漫无边际。”
展开
-
设计模式——观察者模式
1. 简介观察者模式又被称为发布-订阅模式,属于行为型设计模式的一种,是一个在项目中经常使用的模式。定义:定义对象间一种一对多的依赖关系,每当一个对象改变状态时,则所有依赖于它的对象都会得到通知并被自动更新。在观察者模式中有如下角色:Subject:抽象主题(抽象被观察者)。抽象主题角色把所有观察者对象保存在一个集合里,每个主题都可以有任意数量的观察者。抽象主题提供一个接口,可以增加和删除观察者对象。ConcreteSubject:具体主题(具体被观察者)。该角色将有关状态存入具体观察者对象,原创 2021-06-28 19:54:40 · 218 阅读 · 1 评论 -
设计模式——策略模式
1. 简介当我们写代码时总会遇到一种情况,就是我们会有很多的选择,由此衍生出很多的if…else,或者case。如果每个条件语句中包含了一个简单的逻辑,那还比较容易处理;但如果在一个条件语句中又包含了多个条件语句,就会使得代码变得臃肿,维护的成本也会加大,这显然违背了开放封闭原则。本节我们将讲解策略模式,来看看它是怎么解决如上所说的问题的。定义:定义一系列的算法,把每一个算法封装起来,并且使它们可相互替换。策略模式使得算法可独立于使用它的客户而独立变化。在策略模式中有如下角色:Conte原创 2021-06-28 19:38:46 · 204 阅读 · 1 评论 -
设计模式——享元模式(可降低程序内存的占用)
1. 简介享元模式是池技术的重要实现方式,它可以减少应用程序创建的对象,降低程序内存的占用,提高程序的性能。定义:使用共享对象有效地支持大量细粒度的对象要求细粒度对象,那么不可避免地使得对象数量多且性质相近。这些对象分为两个部分:内部状态和外部状态。内部状态是对象可共享出来的信息,存储在享元对象内部并且不会随环境的改变而改变;而外部状态是对象依赖的一个标记,它是随环境改变而改变的并且不可共享的状态。享元模式的结构图如图所示。在享元模式中有如下角色:Flyweight:抽象享元角色,同时定原创 2021-06-28 16:35:27 · 235 阅读 · 0 评论 -
设计模式——外观模式
1. 简介外观模式也被称为门面模式。当我们开发Android的时候,无论是做SDK还是封装API,大多都会用到外观模式,它通过一个外观类使得整个系统的结构只有一个统一的高层接口,这样能降低用户的使用成本。定义:要求一个子系统的外部与内部的通信必须通过一个统一的对象进行。此模式提供一个高层的接口,使得子系统更易于使用。在外观模式中有如下角色:Facade:外观类,知道哪些子系统类负责处理请求,将客户端的请求代理给适当的子系统对Subsystem:子系统类,可以有一个或者多个子系统。实现子系统的功原创 2021-06-28 11:32:10 · 139 阅读 · 0 评论 -
设计模式——装饰模式
1. 简介装饰模式是结构型设计模式之一,其在不必改变类文件和使用继承的情况下,动态地扩展一个对象的功能,是继承的替代方案之一。它通过创建一个包装对象,也就是装饰来包裹真实的对象。定义:动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。在装饰模式中有如下角色:Component:抽象组件,可以是接口或是抽象类,被装饰的最原始的对象。ConcreteComponent:组件具体实现类。Component的具体实现类,被装饰的具体对象。Decorator:抽原创 2021-06-26 16:56:04 · 225 阅读 · 0 评论 -
设计模式——六大原则
首先介绍设计模式的六大原则,它们分别单一职责原则开放封闭原则里氏替换原则依赖倒置原则迪米特原则接口隔离原则1. 单一职责原则就一个类而言,应该仅有一个引起它变化的原因:通俗地讲就是我们不要让一个类承担过多的职责。如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到破坏比如我们会看到一些开发者在Activity中写Bean文件、网络数据处理,如果有列表的话 Adapter原创 2021-06-26 16:26:06 · 263 阅读 · 0 评论 -
设计模式——工厂模式(简单工厂/工厂/抽象)
1. 简单工厂模式1.1 定义简单工厂模式(Simple Factory Pattern):又称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。1.2 使用背景一个简单的场景:提供多个外观不同的按钮(如圆形按钮、矩形按钮、菱形按钮等), 这些按钮都源自同一个基类,不过在继承基类后不同的子类修改了部分属性从而使得它们可以原创 2021-06-15 17:28:34 · 885 阅读 · 1 评论 -
设计模式——单例模式
1.什么的单例单例 Singleton 是设计模式的一种,其特点是只提供唯一一个类的实例,具有全局变量的特点,在任何位置都可以通过接口获取到那个唯一实例; 具体运用场景如:设备管理器,系统中可能有多个设备,但是只有一个设备管理器,用于管理设备驱动;数据池,用来缓存数据的数据结构,需要在一处写,多处读取或者多处写,多处读取;意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点。简单来说使用单例模式可以带来下面几个好处:对于频繁使用的对象,可以省略创建对象所花费的时间,这对于那些重量级对原创 2021-05-11 15:31:36 · 416 阅读 · 0 评论 -
设计模式——代理模式
1.代理模式介绍代理模式就是:提供了对目标对象额外的访问方式,即通过代理对象访问目标对象,这样可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能。通俗的来讲就是中介/代售点。举个栗子:火车票如果都要在火车站买就会特别拥挤,于是产生了代售点,分散售卖就会很方便,代售点就是代理了火车站对象。代理模式的作用:一个客户类不想或者不能直接引用一个委托对象,代理类对象可以在客户类和委托对象之间起到中介的作用,其特征是代理类和委托类实现相同的接口。通过给代理类增加额外的功能来扩展委托类的原创 2021-05-13 16:00:07 · 430 阅读 · 1 评论