软件设计模式:简述23种软件设置

avatar shenyifan 2023-02-05 11:25 349次浏览 评论已关闭

深易凡软件库2月5日消息,做为一个软件库分享着众多的社交软件包括自带的红包功能,其中包括有单透,秒抢,埋雷,爆粉,机器人,红包辅助软件等等。今天给大家介绍软件设计模式:简述23种软件设置简介。

一、设计形式的分类

一般来说,设计形式分为三类:

五种创建形式:工厂方法形式、通用工厂形式、单例形式、生成器形式和原型形式。

七种结构形态:适配形态、装饰形态、代理形态、外观形态、桥梁形态、组合形态和享受形态。

十一种行为形式:战略形式、模板方法形式、观察者形式、迭代子形式、责任链形式、命令形式、备忘录形式、表格形式、访问者形式、中介者形式和解释者形式。

二、设计形式概述

创造性形式

1.工厂方法的形式

创建工厂方法表单是因为在简单工厂表单中存在一个疑问,在简单工厂表单中,类的创建依赖于工厂类。如果要扩展程序,必须修改工厂类,这违反了开闭准则,所以工厂方法形式就呈现出来了,这样创建一个工厂接口和多个工厂完成类就好了,子类可以决定实例化哪个工厂类,客户端类可以为通用接口编程。如果需要添加新的函数,可以继承工厂接口,间接添加新的工厂类。创建过程延迟到子类,不需要修改之前的代码,符合打开和关闭的标准,达到各种对象的敏感消费。

2.一般工厂形式

一般的工厂形式是提供一个接口,用于创建一系列相关或相互依赖的对象,而无需指定它们的详细类。与中央政府以工厂法的形式不同,工厂法的形式是创造一个工厂,它可以完成多种对象;通用工厂形式是提供一个通用的工厂接口,定义了多种工厂,每个工厂可以消费多种对象。前者侧重于“如何消费”,后者侧重于“消费什么”;前者是一个总的产品类别,从中可以派生出多个详细的产品类别,后者是多个总的产品类别,每个总的产品类别可以派生出多个详细的产品类别;前者的每个详细工厂类只能创建详细产品类的一个实例,而后者的每个详细工厂类可以创建详细产品类的多个实例。

3.单一案例形式

单例形式可以确保一个类只有一个实例,并提供一个全局访问点来访问它。同时可以在类外发明单个对象。设置权限后,就无法在类内部发明对象了。单例对象可以保证JVM中只存在一个对象实例。这样做的好处是,如果经常创建一些类,尤其是一些大型对象,会是很大的系统开销。在创建的时候省略了new操作符,降低了系统内存使用的频率,增加了系统的压力。同时,单例形式保证一个jvm中只有一个实例的好处是,一个军队中只会有一个初始军官指挥整个军队,从而保证对整个过程的独立控制,否则,如果有多个实例,就会很混乱。

4.建造者的形式

建造者的形式是把一个复杂的建造和它的表象分离开来,让不同的建造过程产生不同的表象,就像每个餐馆都可能做西红柿炒鸡蛋一样。虽然一开始看起来都像西红柿炒鸡蛋,但是因为烹饪过程的不同,味道也会有所不同。在程序中,一些不会改变的基本组件通过builder组合起来,构建复杂的对象,完成分离。这样做的好处是,客户不需要知道产品外部组成的细节;同时,详细的构建器类相互独立,非常有利于系统的扩展,符合开闭准则;因为详细的构建器类是独立的,所以可以在不影响其他模块的情况下,逐步细化构建过程。

5.原型形式

原型形式是使用原型示例来指定要创建的对象的种类,并通过复制这些原型来创建新对象。其实就是复制对象的一个副本,返回给调用者。该对象应该继承clone()方法。原型形态的思想是以一个物体为原型,复制克隆,产生一个与原物体相似的新物体。可以分为浅层复制和深层复制。前者意味着复制一个对象后,基础数据类型的变量会被重新创建,而被调用的类型指向原来的对象。后者是在复制一个对象后,基础数据类型和引用类型都被重新创建。

构造形式

6.适配器形式

适配器的形式是让那些因为接口不兼容而不能协同工作的类协同工作,把两个不兼容的独立接口连接起来,使它们协同工作。适配器扮演中介的角色。

7.装饰形式

decorator的形式是静态地给一个对象增加一些额定的职责,给一个对象增加一些新的功能,要求被装饰对象和被装饰对象完成同一个接口,被装饰对象持有被装饰对象的一个实例。除了静态添加,也可以静态取消。要静态,不能靠继承来完成,因为继承是静态的。

8.代理形式

代理的形式是为其他对象提供一个代理来控制对这个对象的访问,也就是创建类的代理类,直接访问代理类的进程来控制它的功能。它和装饰者形态的区别在于装饰者形态是强化功能,而代理者形态是控制功能。代理的形式是多出来一个代理类,对原对象进行一些操作。比如买火车票不一定在火车站,也可以在代售点。比如要求律师出庭。因为律师在法律方面有特长,可以为我们操作。

9.外观形式

外观表单为子系统中的一组接口提供了一个发散的接口,外观表单定义了一个高层接口,使得子系统更易于使用。在客户机和复杂系统之间添加另一层,以提供易于使用的外观层。外观是解决类和类的家族之间的依赖关系。外观是把它们的关系放在一个Facade类中,减少了类之间的耦合。比如搜狐门户网站应用外观。

10.桥接形式

桥接形式是将一般部分与完成部分分开,使两者都能独立变化。桥接形式是将事物从其详细完成中分离出来,使其可以独立变化(突然与mvc形式相关联)。将泛化和完成解耦,让它们可以独立变化,就像今天常说的mvc形式。视图和模型由控件控制,从而达到高内聚低耦合的解耦目的。

11.组合形式

组合形式是将对象组分解成树形结构来表达“部分-整体”的层次结构。组合形式使得用户对单个对象和组合对象的使用具有发散性。创建一个包含自己的对象组的类,并提供修改对象组的方法。在系统中的文件和文件夹问题上,采用了组合形式。文件下不能有对象,但文件夹下可以有文件对象或文件夹对象。

12.享受人民币的形式

共享元素的形式是通过使用共享技术来有效地支持少量的细粒度对象。共享元表单的第二个目的是共享对象,即共享池。当系统中有许多对象时,可以增加内存的开销,并且可以重用已有的相似对象。如果没有找到结婚对象,可以创建新的对象,这样可以增加对象的创建,减少系统内存,提高效率。

行为形式

13.战略形式

策略形式是定义一系列算法,一个一个封装起来,使之可以互换,算法的变化不会影响到使用算法的客户。。就是用一个类把一系列算法类(也就是多个策略)封装在一致的接口下,让这些策略可以静态切换。策略形式属于行为形式,为了使这些策略相互切换,选择不同的行为。

14.模板方法表单

模板方法的形式是定义运算中算法的骨架,将一些步骤延迟到子类。这个形式就是在一个一般的类中,有一个main方法,然后1…定义了n个方法,可以是通用的,也可以是实用的。定义一个类,继承通用类,重写通用方法,调用通用类完成对子类的调用。模板方法使子类能够在不改变算法结构的情况下,重新定义算法的一些具体步骤,并将一些固定的步骤和固定的逻辑方法封装到模板方法中。调用模板方法来完成这些特定的步骤。

15.查看器表单

查看器表单是已定义对象之间的一种一对多依赖关系。当对象的形式改变时,所有依赖于它的对象都会丢失并自动更新。也就是说,当被观察人的形状发生变化时,告诉所有的观察者,这种依赖是双向的。我们在阅读一些博客的时候,经常会在邮件订阅和QQ邮箱的RSS订阅中看到RSS图标,意思是当你订阅了这篇文章之后,如果有后续的更新,我们会及时告诉你。这个场景是典型的查看器形式。

16.迭代器形式

迭代器形式是为了提供一种方法来顺序访问聚合对象中的每个元素,而不暴露对象的外部表示。在Java中,遍历聚合类中每个元素的行为被分离出来,封装到一个迭代器中,迭代器处理遍历的义务;简化聚合类,而不暴露聚合类的外部。在我们经常使用的JDK中,所有的类也是这些基本的东西。

17.责任链的形式

责任链的形式是为了防止请求者和被请求者耦合在一起,使得多个对象(例如,请求者)将这些对象链接成链,并且沿着该链传输请求者,直到一个对象处理它。有多个对象,每个对象持有一个对下一个对象的引用,这将形成一个链,诉请将在这个链上传递,直到一个对象决定处置诉请。然而,对于检索者来说,哪个对象最终将处理该请求并不清楚。在生活中王先生请假的过程中,会提到王先生请假是经过层层审批,最后处理的。比如具体谁同意就不清楚了。在程序中,今天使用的struts拦截器是以责任链的形式出现的。

18.命令形式

命令的形式是将一个请求封装到一个对象中,这样检索器就可以用不同的请求参数化客户。形式上有三个对象:调用方、接收方和命令,将诉辩和执行分开;调用者选择要发布的命令,命令指定接收者。比如指挥官命令士兵做某件事,指挥官的作用就是拿回口令。口令通过后,传到士兵耳朵里,士兵执行。指挥官下令三者解耦,双方都不必依赖他人。实际上,struts框架也触及了命令形式的思想。

19.备忘录表单

Memo form就是捕捉一个对象的外部形态,在不破坏封装的情况下,将这个形态保持在对象之外。创建一个memo类来存储原类的信息;同时,创建memo warehouse类来存储隐藏和遗忘的类。次要目的是保留某个对象的某种形式,以便在适当的时间恢复该对象,即进行备份。系统中使用的撤销操作是以备忘录的形式。系统可以无限保留文件形式,用户可以恢复几种形式,即使用备忘录形式。

20.形态形式

形态形式是在外部形态攻击发生变化时,允许对象改变行为。对象有多种形式,每种形式都有特定的行为。在网站的积分体系中,用户有不同的积分,对应不同的形态;QQ用户有几种形式,在线、隐形、占线等。每个表单对应不同的操作,你的好友也可以看到你的表单。

21.访客表单

visitor的形式主要是将数据构造和数据操作分开。在被访问类之外增加一个接收访问者的接口,封装了一些杂七杂八的操作,解耦了为被访问类构造的结构和算法,具有优秀的可扩展性。简单来说,它是一种分离对象数据的结构和行为的方法。通过这种分离,不需要其他修改就可以达到给一个被访问者添加新操作的效果。访问者形式的好处是添加操作很容易,因为添加操作意味着添加新的访问者。Visitor form将相关的行为集中到一个Visitor对象中,它的变化不影响系统数据结构。

22.中介形式

中介的形式是封装一系列对象与中介对象的交互。中介使对象不必显式地相互调用,从而使它们的耦合变得松散,并且可以独立地改变它们的交互。例如,MVC形式的控件是模型和视图之间的中介。与适配器不同的是,适配器的设计是为了兼容不同的接口,而中介器的设计是为了分离显示和操作。

23.解释器形式

译员的形式是演讲,定义其语法表现,定义译员。这个解释器用这个标志来解释语音中的句子,基本上用在这个范围,应用面比较窄,比如正则表达式的解释。

总结:

以上就是今天所分享的内容了,更多行业知识、软件引荐、功能比照、工具测评请关注深易凡软件库。每天给大家带来更高效的企业服务软件,其中包括有微信,惠易购,赞聊,淘米购,叮咚盲盒,青蛙易购,支付宝,香蕉赶集,乐享购,淘盟铺,亲聊,探聊,诚智通,伶信,QQ,新易选,红包辅助,享乐好物,易民购,梦幻盲盒,苹果微信多开,微信分身,安卓微信多开,淘客购,旗语,点约,优品铺,创信等现如今热门社交软件,其中功能有秒抢,避雷,埋雷软件,扫尾,单透软件等一些红包强项外挂功能软件免费下载使用!

发表评论
请先登录后再评论~