常用设计模式有哪些(Android 开发中常用到的设计模式有哪些)

2024-06-29 08:46:39 2

常用设计模式有哪些(Android 开发中常用到的设计模式有哪些)

本文目录

Android 开发中常用到的设计模式有哪些

设计模式总共是23种,常用的有下面几种 :1 单例模式,application 就是单例 可以存储一些数据例如记录activity的启动数量 ;2 观察者模式: button的onClickListener ,监听button的响应; 3 适配器模式 :例如recyclerView 的adapter ;4 命令模式: 例如开源库eventBus ,把数据封装好 发送出去,然后接收; 等等等等,很多

java中常用的设计模式有哪些

您好:

java中的设计模式有23种,具体如下:

创建型

抽象工厂模式、工厂方法、建造者模式、原型模式、单态模式

结构型

适配器模式、桥接模式、组合模式、外观模式、装饰者模式、享元模式、代理模式、

行为型

责任链模式、命令模式、解释器模式、迭代模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式、访问者模式

常见的有七种,具体如下:单例模式、工厂模式、建造(Builder)模式、观察者模式、适配器(Adapter)模式、代理模式、装饰模式

举个例子:

通过调用getInstance()方法来创建实例。

其他不一一举例,仅供参考!希望对你有帮助

设计模式都有哪些

总体来说设计模式分为三大类:

一、创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。

二、结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。

三、行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

1、工厂方法模式:

定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。

工厂模式有一个问题就是,类的创建依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则,所以,从设计角度考虑,有一定的问题,这就用到工厂方法模式。

创建一个工厂接口和创建多个工厂实现类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。

2、抽象工厂模式:

提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。抽象工厂需要创建一些列产品,着重点在于"创建哪些"产品上,也就是说,如果你开发,你的主要任务是划分不同差异的产品线,并且尽量保持每条产品线接口一致,从而可以从同一个抽象工厂继承。

3、单例模式:

单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。这样的模式有几个好处:

(1)某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。

(2)省去了new操作符,降低了系统内存的使用频率,减轻GC压力。

(3)有些类如交易所的核心交易引擎,控制着交易流程,如果该类可以创建多个的话,系统完全乱了。(比如一个军队出现了多个司令员同时指挥,肯定会乱成一团),所以只有使用单例模式,才能保证核心交易服务器独立控制整个流程。

4、建造者模式:

将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

5、原型模式:

原型模式虽然是创建型的模式,但是与工程模式没有关系,从名字即可看出,该模式的思想就是将一个对象作为原型,对其进行复制、克隆,产生一个和原对象类似的新对象。本小结会通过对象的复制,进行讲解。在Java中,复制对象是通过clone()实现的,先创建一个原型类。

6、适配器模式:

适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题。主要分为三类:类的适配器模式、对象的适配器模式、接口的适配器模式。

7、装饰器模式:

顾名思义,装饰模式就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例。

8、代理模式:

代理模式就是多一个代理类出来,替原对象进行一些操作,比如我们在租房子的时候回去找中介,为什么呢?因为你对该地区房屋的信息掌握的不够全面,希望找一个更熟悉的人去帮你做,此处的代理就是这个意思。

9、外观模式:

外观模式是为了解决类与类之家的依赖关系的,像spring一样,可以将类和类之间的关系配置到配置文件中,而外观模式就是将他们的关系放在一个Facade类中,降低了类类之间的耦合度,该模式中没有涉及到接口。

10、桥接模式:

桥接模式就是把事物和其具体实现分开,使他们可以各自独立的变化。桥接的用意是:将抽象化与实现化解耦,使得二者可以独立变化,像我们常用的JDBC桥DriverManager一样。

JDBC进行连接数据库的时候,在各个数据库之间进行切换,基本不需要动太多的代码,甚至丝毫不用动,原因就是JDBC提供统一接口,每个数据库提供各自的实现,用一个叫做数据库驱动的程序来桥接就行了。

11、组合模式:

组合模式有时又叫部分-整体模式在处理类似树形结构的问题时比较方便。使用场景:将多个对象组合在一起进行操作,常用于表示树形结构中,例如二叉树,数等。

12、享元模式:

享元模式的主要目的是实现对象的共享,即共享池,当系统中对象多的时候可以减少内存的开销,通常与工厂模式一起使用。

13、策略模式:

策略模式定义了一系列算法,并将每个算法封装起来,使其可以相互替换,且算法的变化不会影响到使用算法的客户。需要设计一个接口,为一系列实现类提供统一的方法,多个实现类实现该接口,设计一个抽象类(可有可无,属于辅助类),提供辅助函数。

14、模板方法模式:

一个抽象类中,有一个主方法,再定义1...n个方法,可以是抽象的,也可以是实际的方法,定义一个类,继承该抽象类,重写抽象方法,通过调用抽象类,实现对子类的调用。

15、观察者模式:

观察者模式很好理解,类似于邮件订阅和RSS订阅,当我们浏览一些博客或wiki时,经常会看到RSS图标,就这的意思是,当你订阅了该文章,如果后续有更新,会及时通知你。

其实,简单来讲就一句话:当一个对象变化时,其它依赖该对象的对象都会收到通知,并且随着变化!对象之间是一种一对多的关系。

16、迭代子模式:

顾名思义,迭代器模式就是顺序访问聚集中的对象,一般来说,集合中非常常见,如果对集合类比较熟悉的话,理解本模式会十分轻松。这句话包含两层意思:一是需要遍历的对象,即聚集对象,二是迭代器对象,用于对聚集对象进行遍历访问。

17、责任链模式:

责任链模式,有多个对象,每个对象持有对下一个对象的引用,这样就会形成一条链,请求在这条链上传递,直到某一对象决定处理该请求。但是发出者并不清楚到底最终那个对象会处理该请求,所以,责任链模式可以实现,在隐瞒客户端的情况下,对系统进行动态的调整。

18、命令模式:

命令模式的目的就是达到命令的发出者和执行者之间解耦,实现请求和执行分开。

19、备忘录模式:

主要目的是保存一个对象的某个状态,以便在适当的时候恢复对象,个人觉得叫备份模式更形象些,通俗的讲下:假设有原始类A,A中有各种属性,A可以决定需要备份的属性,备忘录类B是用来存储A的一些内部状态,类C呢,就是一个用来存储备忘录的,且只能存储,不能修改等操作。

20、状态模式:

状态模式在日常开发中用的挺多的,尤其是做网站的时候,我们有时希望根据对象的某一属性,区别开他们的一些功能,比如说简单的权限控制等。

21、访问者模式:

访问者模式把数据结构和作用于结构上的操作解耦合,使得操作集合可相对自由地演化。访问者模式适用于数据结构相对稳定算法又易变化的系统。因为访问者模式使得算法操作增加变得容易。

若系统数据结构对象易于变化,经常有新的数据对象增加进来,则不适合使用访问者模式。访问者模式的优点是增加操作很容易,因为增加操作意味着增加新的访问者。访问者模式将有关行为集中到一个访问者对象中,其改变不影响系统数据结构。其缺点就是增加新的数据结构很困难。

22、中介者模式:

中介者模式也是用来降低类类之间的耦合的,因为如果类类之间有依赖关系的话,不利于功能的拓展和维护,因为只要修改一个对象,其它关联的对象都得进行修改。

如果使用中介者模式,只需关心和Mediator类的关系,具体类类之间的关系及调度交给Mediator就行,这有点像spring容器的作用。

23、解释器模式:

解释器模式一般主要应用在OOP开发中的编译器的开发中,所以适用面比较窄。

扩展资料:

介绍三本关于设计模式的书:

1、《设计模式:可复用面向对象软件的基础》

作者: Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides

出版社: 机械工业出版社

2、《软件秘笈:设计模式那点事》

作者:郑阿奇

出版社:电子工业出版社

3、《设计模式:基于C#的工程化实现及扩展》

作者:王翔

出版社:电子工业出版社

设计模式有二十几种都是哪些

常用的有 工厂模式、工厂方法模式、外观模式、桥接模式、创建型模式、建造模式、单例模式、结构型模式、适配器模式、合成模式、等等

python常用的几种设计模式是什么

python常用的几种设计模式有:1、单例模式,确保某一个类只有一个实例;2、工厂模式,使用一个公共的接口来创建对象;3、策略模式,随着策略对象改变内容;4、门面模式,对子系统的封装,使得封装接口不会被单独提出来。

什么是设计模式?

设计模式是一套被反复使用,多数人知道,经过分类编目的代码设计经验总结。

使用设计模式是为了提高代码可重用性,可阅读性,和可靠性。

你说理解的设计模式有几种?

设计模式又可分为三种:创建型(单例模式)、(工厂模式),结构型,行为型(策略模式)

单例模式以及应用场景:

(1)确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,单例模式是一种对象创建型模式。Windows的Task Manager(任务管理器)、Recycle Bin(回收站)、网站计数器

(2)单例模式应用的场景一般发现在以下条件下:

资源共享的情况下,避免由于资源操作时导致的性能或损耗等。如上述中的日志文件,应用配置。控制资源的情况下,方便资源之间的互相通信。如线程池等

要点:一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。

工厂模式:

提供一个创建对象的接口,不像客户端暴露创建对象的过程,而是使用一个公共的接口来创建对象。

可以分为三种:简单工厂  工厂方法   抽象工厂

 一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。

策略模式:

在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。

要点:把一个个策略,也就是算法封装成一个一个类,任意的替换

解决的问题:避免多个if....else带来的复杂

使用场景:系统中需要动态的在集中算法中动态的选择一种,

门面模式:

门面模式也叫外观模式,定义如下:要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。门面模式注重“统一的对象”,也就是提供一个访问子系统的接口。门面模式与之前说过的模板模式有类似的地方,都是对一些需要重复方法的封装。但从本质上来说,是不同的。模板模式是对类本身的方法的封装,其被封装的方法也可以单独使用;而门面模式,是对子系统的封装,其被封装的接口理论上是不会被单独提出来用的。

一个对象有很多行为,如果么有选择合适的设计模式,这些行为就需要用多重的条件判断来实现算法的切换,增加了代码的复杂度。

推荐课程:Python面对对象(Corey Schafer)

常用设计模式有哪些(Android 开发中常用到的设计模式有哪些)

本文编辑:admin

本文相关文章:


常用设计模式有哪些(设计模式都有哪些)

常用设计模式有哪些(设计模式都有哪些)

本文目录设计模式都有哪些java中常用的设计模式有哪些python常用的几种设计模式是什么Android 开发中常用到的设计模式有哪些设计模式有二十几种都是哪些设计模式都有哪些总体来说设计模式分为三大类:一、创建型模式,共五种:工厂方法模式

2024年7月12日 07:15

更多文章:


announced(announced是什么意思)

announced(announced是什么意思)

本篇文章给大家谈谈announced,以及announced是什么意思对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录announced是什

2024年6月29日 09:34

lol金属大师(LOL新版本金属大师改名了,金属大师改名后叫什么)

lol金属大师(LOL新版本金属大师改名了,金属大师改名后叫什么)

本文目录LOL新版本金属大师改名了,金属大师改名后叫什么LOL金属大师厉害不如何看待LOL金属大师的改版是不是太弱击杀ad仍需要大招,是否有可能加强lol里铁男就是金属大师他的强势期是多少级大概大概打法思路是什么LOL金属大师后期打得过武器

2024年7月15日 13:17

手机windows10模拟器(wins10simulator手机版为什么进不去)

手机windows10模拟器(wins10simulator手机版为什么进不去)

“手机windows10模拟器”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看手机windows10模拟器(wins10simulator手机版为什么进不去)!本文目录wins10simulator手机版为什么进不去Win1

2024年7月10日 17:32

豆客游戏平台下载(网吧现在玩CS一般都用什么对战平台)

豆客游戏平台下载(网吧现在玩CS一般都用什么对战平台)

这篇文章给大家聊聊关于豆客游戏平台下载,以及网吧现在玩CS一般都用什么对战平台对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录网吧现在玩CS一般都用什么对战平台求cs1.6正版官方网站的下载地址----买的也行,在哪买平板电脑

2024年8月31日 10:05

看小说的软件哪个最全(小说软件哪个好用免费最全)

看小说的软件哪个最全(小说软件哪个好用免费最全)

本篇文章给大家谈谈看小说的软件哪个最全,以及小说软件哪个好用免费最全对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录小说软件哪个好用免费最全

2024年8月21日 15:10

最好的手机炒股软件排名(模拟炒股APP排名前十有哪些)

最好的手机炒股软件排名(模拟炒股APP排名前十有哪些)

大家好,今天小编来为大家解答以下的问题,关于最好的手机炒股软件排名,模拟炒股APP排名前十有哪些这个很多人还不知道,现在让我们一起来看看吧!本文目录模拟炒股APP排名前十有哪些哪个炒股软件最好用炒股软件app排名炒股软件哪个最好炒股软件ap

2024年9月6日 00:21

qq农牧场助手(超强qq农牧场助手出现“未知错误“怎么办)

qq农牧场助手(超强qq农牧场助手出现“未知错误“怎么办)

本篇文章给大家谈谈qq农牧场助手,以及超强qq农牧场助手出现“未知错误“怎么办对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录超强qq农牧场

2024年7月1日 00:12

qq旋风下载器(qq旋风下载器要多少积分才能点亮)

qq旋风下载器(qq旋风下载器要多少积分才能点亮)

今天给各位分享qq旋风下载器要多少积分才能点亮的知识,其中也会对qq旋风下载器要多少积分才能点亮进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录qq旋风下载器要多少积分才能点亮怎么使用qq旋风下载怎么用QQ旋风

2024年7月23日 20:10

“淘宝特价版”上线,直接对标拼多多,你更看好谁?为什么淘宝会开一个特价版真的有便宜吗

“淘宝特价版”上线,直接对标拼多多,你更看好谁?为什么淘宝会开一个特价版真的有便宜吗

本文目录“淘宝特价版”上线,直接对标拼多多,你更看好谁为什么淘宝会开一个特价版真的有便宜吗如何评价淘宝推出的特价版,年轻人在上面买便宜货丢人吗淘宝推出淘宝特价版对淘宝天猫好吗淘宝特价版可以在淘宝上投诉吗怎么投诉淘宝特价版官方网站什么是淘宝特

2024年7月3日 14:15

教务管理系统入口(武汉理工大学教务管理系统入口)

教务管理系统入口(武汉理工大学教务管理系统入口)

本篇文章给大家谈谈教务管理系统入口,以及武汉理工大学教务管理系统入口对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录武汉理工大学教务管理系统

2024年9月7日 10:25

ps中文字体(请问ps怎么显示中文字体)

ps中文字体(请问ps怎么显示中文字体)

本文目录请问ps怎么显示中文字体如何用Photoshop打造属于自己的个性中文字体怎么在Photoshop中添加中文字体请问一下ps怎么显示中文字体如何在photoshop中添加中文字体PS怎么做手写中文字体ps如何显示中文字体PS字体在哪

2024年3月6日 00:55

御龙在天配置(御龙在天手游要什么配置的电脑可以开10个号)

御龙在天配置(御龙在天手游要什么配置的电脑可以开10个号)

本文目录御龙在天手游要什么配置的电脑可以开10个号求御龙在天多开电脑配置御龙在天多开电脑配置御龙在天电脑配置这样的配置能玩御龙在天吗御龙在天吃cpu吗御龙在天要求什么电脑配置御龙在天需要什么配置能玩御龙在天要求电脑配置多少御龙在天手游要什么

2024年3月2日 20:25

狂野飙车8游戏下载(ns狂野飙车8怎么下载)

狂野飙车8游戏下载(ns狂野飙车8怎么下载)

这篇文章给大家聊聊关于狂野飙车8游戏下载,以及ns狂野飙车8怎么下载对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录ns狂野飙车8怎么下载安卓狂野飙车8破解版哪里下载狂野飙车8安卓在哪下载咋那里下载狂野飙车8极速凌云旧版图标是

2024年9月1日 18:35

打拼音的软件下载(打出来的字带拼音是什么软件)

打拼音的软件下载(打出来的字带拼音是什么软件)

各位老铁们好,相信很多人对打拼音的软件下载都不是特别的了解,因此呢,今天就来为大家分享下关于打拼音的软件下载以及打出来的字带拼音是什么软件的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录打出来的字带拼音是什么软件

2024年8月14日 05:41

微信头像图片2021最新款(微信头像图片2021最火爆,微信用什么头像最吉利)

微信头像图片2021最新款(微信头像图片2021最火爆,微信用什么头像最吉利)

各位老铁们好,相信很多人对微信头像图片2021最新款都不是特别的了解,因此呢,今天就来为大家分享下关于微信头像图片2021最新款以及微信头像图片2021最火爆,微信用什么头像最吉利的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来

2024年7月16日 10:27

apple watch多少钱(Apple Watch多少钱一个)

apple watch多少钱(Apple Watch多少钱一个)

本文目录Apple Watch多少钱一个Apple Watch Series 6 多少钱applewatch换屏幕多少钱苹果手表多少钱苹果apple watch多少钱Apple Watch多少钱一个首先,AppleWatch分为三大类,运动

2024年6月9日 05:00

新浪手游助手(想在电脑上玩《小兵传奇》这款游戏该怎么做)

新浪手游助手(想在电脑上玩《小兵传奇》这款游戏该怎么做)

本文目录想在电脑上玩《小兵传奇》这款游戏该怎么做用新浪手游助手玩王者荣耀键盘怎么设置怎么在电脑上玩火影忍者新浪手游助手怎么设置电脑键盘操控游戏为什么win10新浪手游助手显示不出来最好用的安卓模拟器,求推荐新浪手游助手电脑怎么变为竖屏想在电

2024年2月9日 02:00

搜题软件哪个好用排行榜?拍一拍答案就出来软件,拍作业找答案解题神器

搜题软件哪个好用排行榜?拍一拍答案就出来软件,拍作业找答案解题神器

本文目录搜题软件哪个好用排行榜拍一拍答案就出来软件,拍作业找答案解题神器数学解题神器一扫就出答案,扫一扫解答数学题的软件解题神器一扫就出答案,答题神器一扫就出5秒出答案扫一扫数学解题软件有哪些,数学题扫一扫就知道答案有什么手机软件 如果你有

2024年2月3日 21:00

51单片机编程软件(学习单片机用什么软件)

51单片机编程软件(学习单片机用什么软件)

大家好,今天小编来为大家解答以下的问题,关于51单片机编程软件,学习单片机用什么软件这个很多人还不知道,现在让我们一起来看看吧!本文目录学习单片机用什么软件单片机c语言编程软件是什么51单片机用什么软件编程mixly支持51单片机吗单片机用

2024年7月23日 06:32

造梦西游2无敌版下载(你玩过的手游里面觉得哪一款最好玩)

造梦西游2无敌版下载(你玩过的手游里面觉得哪一款最好玩)

本文目录你玩过的手游里面觉得哪一款最好玩你玩过最长时间的游戏是什么,现在还在玩吗为什么印度将重金打造升级版苏-30MKI,号称超级苏霍伊,性能如何有没有造梦西游2无敌版啊,拜托了为什么玩了造梦西游2无敌版,网页版就玩不成了,一打开就该页无法

2024年6月7日 03:32

近期文章

本站热文

iphone vpn设置(ios设置vpn快捷开关)
2024-07-22 15:01:12 浏览:2334
windows12正式版下载(操作系统Windows Server 2012 R2,在哪能下载到,公司用的)
2024-07-20 17:26:53 浏览:1730
java安装教程(win10如何安装JAVA)
2024-07-19 19:55:49 浏览:1155
client mfc application未响应(每次进cf就提示client MFC Application未响应该怎么办啊!急急急)
2024-07-20 11:15:58 浏览:1152
标签列表

热门搜索