web设计模式有哪些

云网络8个月前 (09-02)建站教程131

web设计模式主要有以下四种:1.单例设计模式;2.策略设计模式;3.观察者设计模式;4.装饰器设计模式;5.代理设计模式;6.分层设计模式。单例设计模式的实现方法是判断是否存在该对象的实例,如果已存在则不再创建。

1.单例设计模式

单例模式仅允许类或对象具有单个实例,并且它使用全局变量来存储该实例。其使用场景适用于业务场景中只能存在一个的实例,比如弹窗、购物车。数据库连接有时候使用的也是单例设计模式,通过创建连接数据库的单例模式,可以有效避免我们生成过多的数据库连接对象,避免了数据库连接开销。

单例模式分为懒汉式和饿汉式:(1)懒汉式在类加载时,不创建实例,因此类加载速度快,但运行时获取对象的速度慢;(2)饿汉式在类加载时就完成了初始化,所以类加载较慢,但获取对象的速度快。

2.策略设计模式

策略设计模式,就像if else语句的高级版本。基本上,您可以在其中为基类中的方法创建接口。然后,使用此接口从派生类中找到该方法的正确实现。

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

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

3.观察者设计模式

观察者模式,也叫订阅-发布模式,是对象的行为模式,在对象之间定义了一对多的依赖关系,就是多个观察者和一个被观察者之间的关系,当被观察者发生变化的时候,会通知所有的观察者对象,他们做出相对应的操作。

观察者模式就像MVC(模型-视图-控制器模式)的View部分。您有一个包含所有数据及其状态的主题。然后,您将拥有与用户一样的观察者,他们将在数据更新后从主题中提取数据。发送用户通知,更新,筛选和处理订阅者都可以使用观察者模式来完成。

4.装饰器设计模式

允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构性模式,它是作为现有的类的一个包装。

这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。

我们通过下面的实例来演示装饰器模式的用法。其中,我们将把一个形状装饰上不同的颜色,同时又不改变形状类。

动态地给一个对象添加一些额外的职责。就增加功能来说,装饰器模式相比生成子类更为灵活。

5.代理设计模式

代理设计模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。通俗的来讲代理模式就是我们生活中常见的中介。其实现方法是定义一个委托者和一个代理,需要委托的事情在代理中完成。

在某些情况下,一个客户类不想或者不能直接引用一个委托对象,而代理类对象可以在客户类和委托对象之间起到中介的作用。代理可以帮客户过滤掉一些请求并且把一些开销大的对象,延迟到真正需要它时才创建。

6.分层设计模式

分层设计模式常用于可分解为子任务的结构化程序,每个子任务都位于特定的抽象层级,每一层都为上一层提供服务。一般信息系统最常见的4个层次:表示层(也称为UI层);应用层(也称为服务层);业务逻辑层(也称为领域层);数据访问层(也称为持久层)。

分层设计模式的应用场景:一般的桌面应用程序;电子商务web应用程序;一般的移动App。

延伸阅读

常见的Web服务器技术和网页设计技术有哪些

1.ASP技术

ASP(Active Server Pages)是由微软创建的Web应用开发标准,ASP服务器已经包含在IIS服务器中,ASP服务器将Web请求转入解释器中,在解释器中将所有ASP的Script进行分析,然后执行,同时可以创建C[)M对象以完成更多的功能,ASP中的Script是VBScript。

2.PHP技术

PHP(Personal Home Page)是目前最流行的服务器脚本语言之一。它运行在Web服务端,根据用户请求或服务器端的数据产生动态网页,具有很强的数据库访问能力。它的执行效率要高于普通的CGI程序,能比CGI或者Perl更快速地执行动态网页。

如果创建了一个PHP应用程序,实际上相当于创建了一个PHP脚本文件。在服务器将输出信息发送到客户端之前,网络服务器会率先将文件中的PHP语言进行加工处理。

3.JSP技术

JSP(Java Server Page)是由Sun Micro Systems公司倡导、许多公司参与,一起建立的一种动态网页技术标准。在传统的网页HTML文件中加入Java程序片段(Scriptlet)和JSP标记,就构成了JSP网页。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。程序片段可以操作数据库、重新定向网页以及发送E-mail等,这就是建立动态网站所需要的功能。

4.Flash技术

F1ash是美国的Macromedia公司于1999年6月推出的优异网页动画设计软件,它是一种交互式动画设计工具,使用它可以将音乐、声效、动画以及富有新意的界面融合在—作出高品质的网页动态效果。

5.XML技术

可扩展标记语言(eXtensible Markup Language,简称为XML),是用来对信息进行自我描述而设计的一种新语言。使用XML的用户可以定义无穷的标记来描述文档中的任何数据元素,将文档的内容组织成丰富的完整的信息体系。XML具有四大特点:便于存储的数据格式、可扩展性、高度结构化以及方便的网络传输,这些特点为我们创建开放、高效、可扩展、个性化的Web应用提供了一个崭新的起点。


相关文章

手机厂商心心念的安卓14正式版要跳票!谷歌Pixle 8首发新OS

快科技9月6日消息,Android开发者Mishaal Rahman在社交平台透露,Android 14源代码推迟到下个月发布。手机厂商们原本以为,9月份就可能为老机型推送Android 14正式版更...

没有备案的网站不能解析吗?

不备案的域名是可以解析的。摘要:备案是指在网站建设之前,需要向网站所在地的行政主管部门进行备案登记,获取备案号码,以便于显示在网站首页,证明网站的合法性。但是在互联网的技术不断发展的今天,出现了不备案...

虚拟主机和服务器的区别是什么

虚拟主机和服务器的区别包括:1.概念上的区别;2.适用性的区别;3.可用资源的区别;4.环境部署的区别;5.远程管理的区别;6.使用成本的区别。概念上的区别在于,虚拟主机相当于从服务器中分割出一个空间...

常见程序首页添加备案编号链接工信部

添加对应的备案信息到首页一般使用以下代码添加。<a href="http://beian.miit.gov.cn/">备案号</a>不同程序添加方式不一样,...

Bluehost 推出人工智能驱动的 WordPress 网站建设 AI 套件 WonderSuite

Bluehost 推出人工智能驱动的 WordPress 网站建设 AI 套件 WonderSuite

7月14日消息:Bluehost 是一家专门提供 WordPress 托管服务的网络托管服务提供商,周三宣布推出一款利用人工智能的 WordPress 网站构建套件。该套...

谷歌推出 2000 万美元基金支持负责任的人工智能开发

谷歌推出 2000 万美元基金支持负责任的人工智能开发

9月12日消息:继在旧金山举行的 Google Cloud Next 会议上发布了一系列生成式 AI 项目和工具后,谷歌于周一宣布推出数字未来项目,旨在汇聚 AI 发展中的多样化...