常见设计模式的优点和缺点及适用场景

策略模式(Strategy)

定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化不会影响到使用算法的客户。

在这里插入图片描述

策略模式的优点:

  1. 将算法单独封装,减少算法和算法调用者直接的耦合。
  2. 合理使用继承可以提取算法中的公共部分。
  3. 简化单元测试。

策略模式的缺点:

  1. 策略模式只适用于客户端知道所有的算法或行为的情况。
  2. 策略模式造成很多的策略类,每个具体策略类都会产生一个新类。

策略模式的适用场景:

  1. 需要在不同情况下使用不同的算法,以后算法可能还会增加。
  2. 对用户隐藏算法逻辑。

简单工厂模式(Static Factory Method)

由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类。
在这里插入图片描述

简单工厂模式的优点:

  1. 通过使用工厂类,外界仅仅需要负责“消费”对象,而不必管这些对象究竟如何创建及如何组织的。明确了各自的职责和权利,有利于整个软件体系结构的优化。

简单工厂模式的缺点:

  1. 由于工厂类集中了所有实例的创建逻辑,违反了高内聚责任分配原则,将全部创建逻辑集中到了一个工厂类中,它所能创建的类只能是事先考虑到的,如果需要添加新的类,则就需要改变工厂类了。违反了开闭原则。
  2. 当系统中的具体产品类不断增多时候,可能会出现要求工厂类根据不同条件创建不同实例的需求。这种对条件的判断和对具体产品类型的判断交错在一起,很难避免模块功能的蔓延,对系统的维护和扩展非常不利。

简单工厂模式的适用场景:

  1. 工厂类负责创建的对象比较少。
  2. 客户只知道传入工厂类的参数,对于如何创建对象(逻辑)不关心。

装饰模式(Decorator)

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

在这里插入图片描述
装饰模式的优点:

  1. 装饰模式动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。
  2. 每个装饰对象的实现和如何使用这个对象分离开了,每个装饰对象只关心自己的功能,不需要关心如何被添加到对象链中。
  3. 可以把类的核心职责和装饰功能区别开来,从而去除相关重复的装饰逻辑。

装饰模式的缺点:

  1. 装饰模式会导致设计中出现许多小类。

装饰模式的适用场景:

  1. 需要扩展一个类的功能,或给一个类添加附加职责。
  2. 需要动态的给一个对象添加功能,这些功能可以再动态的撤销。
  3. 需要增加由一些基本功能的排列组合而产生的非常大量的功能,从而使继承关系变的不现实

代理模式(Proxy)

为其他对象提供一种代理以控制对这个对象的访问。
在这里插入图片描述

代理模式的优点:

  1. 职责清晰,真实的角色就是实现实际的业务逻辑,不用关心其他非本职责的事务,通过后期的代理完成一件完成事务,附带的结果就是编程简洁清晰。
  2. 代理对象可以在客户端和目标对象之间起到中介的作用,这样起到了中介的作用和保护了目标对象的作用。
  3. 高扩展性。

代理模式的缺点:

  1. 在客户端和目标对象增加一个代理对象,会造成请求处理速度变慢。

代理模式的适用场景:

  1. 远程代理,为一个对象在不同的地址空间提供局部代表,这样就可以隐藏一个对象存在于不同地址空间的事实。
  2. 虚拟代理,是根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的真实对象。
  3. 安全代理,用来控制真实对象访问时的权限。
  4. 智能指引,是指当调用真实的对象时,代理处理另外的一些事情。

工厂方法模式(Factory Method)

定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法是一个类的实例化延迟到其子类。
在这里插入图片描述

工厂方法模式的优点:

  1. 工厂类中包含了必要的逻辑判断,根据客户端的选择条件的拿给她实例化相关的类,对于客户端来说去除了与具体产品的依赖。
  2. 工厂方法模式的扩展性非常优秀。
  3. 工厂方法模式是典型的解耦框架。

工厂方法模式的缺点:

  1. 使用者必须知道相应工厂的存在。
  2. 每次增加一个产品时,都需要增加一个具体类和对象实现工厂,是的系统中类的个数成倍增加,在一定程度上增加了系统的复杂度,同时也增加了系统具体类的依赖。

工厂方法模式的适用场景:

  1. 需要灵活的、可扩展的框架时,可以考虑采用工厂方法模式。

抽象工厂模式(Abstract Factory)

提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。

在这里插入图片描述
抽象工厂模式的优点:

  1. 具体产品在应用层代码隔离,无须关心创建细节
  2. 将一系列的产品族统一到一起创建

抽象工厂模式的缺点:

  1. 规定了所有可能被创建的产品集合,产品族中扩展新的产品困难,需要修改抽象工厂的接口
  2. 增加了系统的抽象性和理解难度

抽象工厂模式的适用场景:

  1. 客户端(应用层)不依赖于产品类实例如何被创建、实现等细节
  2. 强调一系列相关的产品对象(属于同一产品族)一起使用创建对象需要大量重复的代码
  3. 提供一个产品类的库,所有的产品以同样的接口出现,从而使客户端不依赖于具体实现

原型模式(Prototype)

用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。

在这里插入图片描述
原型模式的优点:

  1. 隐藏了对象创建的细节。
  2. 提高了性能。
  3. 不用重新初始化,动态获得对象运行时的状态。

原型模式的缺点:

  1. 适用性不是很广。
  2. 每一个类必须配备一个克隆方法。

原型模式的适用场景:

  1. 某些结构复杂的对象的创建工作;由于需求的变化,这些对象经常面临着剧烈的变化,但是他们却拥有比较稳定一致的接口。
  2. 一般在初始化的信息不发生变化的情况下,克隆是最好的方法。

观察者模式(Observer)

定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有的观察者对象,使他们能够自动更新自己。

在这里插入图片描述
观察者模式的优点:

  1. 观察者模式在被观察者和观察者之间建立一个抽象的耦合。被观察者并不认识任何一个具体观察者,它只知道它们都有一个共同的接口。
  2. 观察者模式支持广播通讯。被观察者会向所有的登记过的观察者发出通知。

观察者模式的缺点:

  1. 如果一个被观察者对象有很多的直接和间接的观察者的话,将所有的观察者都通知到会花费很多时间。
  2. 如果在被观察者之间有循环依赖的话,被观察者会触发它们之间进行循环调用,导致系统崩溃。在使用观察者模式是要特别注意这一点。
  3. 如果对观察者的通知是通过另外的线程进行异步投递的话,系统必须保证投递是以自恰的方式进行的。
  4. 虽然观察者模式可以随时使观察者知道所观察的对象发生了变化,但是观察者模式没有相应的机制使观察者知道所观察的对象是怎么发生变化的。

观察者模式的适用场景:

  1. 对一个对象状态的更新,需要其他对象同步更新,而且其他对象的数量动态可变。
  2. 对象仅需要将自己的更新通知给其他对象而不需要知道其他对象的细节。

单例模式(Singleto)

保证一个类仅有一个实例,并提供一个访问它的全局访问点。

在这里插入图片描述
单例模式的优点:

  1. 在单例模式中,活动的单例只有一个实例,对单例类的所有实例化得到的都是相同的一个实例。这样就
    防止其它对象对自己的实例化,确保所有的对象都访问一个实例
  2. 单例模式具有一定的伸缩性,类自己来控制实例化进程,类就在改变实例化进程上有相应的伸缩性。
  3. 提供了对唯一实例的受控访问。
  4. 由于在系统内存中只存在一个对象,因此可以 节约系统资源,当 需要频繁创建和销毁的对象时单例模式无疑可以提高系统的性能。
  5. 允许可变数目的实例。
  6. 避免对共享资源的多重占用。

单例模式的缺点:

  1. 不适用于变化的对象,如果同一类型的对象总是要在不同的用例场景发生变化,单例就会引起数据的错误,不能保存彼此的状态。
  2. 由于单利模式中没有抽象层,因此单例类的扩展有很大的困难。
  3. 单例类的职责过重,在一定程度上违背了“单一职责原则”。
  4. 滥用单例将带来一些负面问题,如为了节省资源将数据库连接池对象设计为的单例类,可能会导致共享连接池对象的程序过多而出现连接池溢出;如果实例化的对象长时间不被利用,系统会认为是垃圾而被回收,这将导致对象状态的丢失。

单例模式的适用场景:

  1. 需要频繁实例化然后销毁的对象。
  2. 创建对象时耗时过多或者耗资源过多,但又经常用到的对象。
  3. 有状态的工具类对象。
  4. 频繁访问数据库或文件的对象。

命令模式(Command)

将一个请求封装成一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。
在这里插入图片描述

命令模式的优点:

  1. 命令和实际的执行者分离,实际的操作都是通过invoker以及receiver去执行的
  2. 屏蔽了底层的复杂实现,对外提供了统一的表现
  3. 可以记录操作的历史记录
  4. 拓展性好,一方面,可以很方便地添加新的命令,如在word中添加插入html功能;另一方面,也可以把命令迁移到另一种场景下,如把word中的命令迁移到excel中
  5. 用户使用上,用户通过组合一些命令,可以实现宏的功能,效率更高

命令模式的缺点:

  1. 代码冗余较多。每个命令,需要同时修改好几个地方,维护较复杂

命令模式的适用场景:

  1. 有时候需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是什么。此时希望用一种松耦合的方式来设计程序,使得请求发送者和请求接收者能够消除彼此之间的耦合关系

责任链模式(Chain of Responsibility)

使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理为止。
在这里插入图片描述

责任链模式的优点:

  1. 责任链模式将请求和处理分开,请求者不知道是谁处理的,处理者可以不用知道请求的全貌。
  2. 提高系统的灵活性。

责任链模式的缺点:

  1. 降低程序的性能。每个请求都是从链头遍历到链尾,当链比较长的时候,性能会大幅下降。
  2. 不易于调试。由于该模式采用了类似递归的方式,调试的时候逻辑比较复杂。

责任链模式的适用场景:

  1. 一个请求需要一系列的处理工作。
  2. 业务流的处理,例如文件审批。
  3. 对系统进行扩展补充。

适配器模式(Adapter)

将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
在这里插入图片描述

适配器模式的优点:

  1. 将目标类和适配者类解耦
  2. 增加了类的透明性和复用性,将具体的实现封装在适配者类中,对于客户端类来说是透明的,而且提高了适配者的复用性
  3. 灵活性和扩展性都非常好,符合开闭原则

适配器模式的缺点:

  1. 过多的适配,会让系统非常的凌乱,不容易整理进行把握。因此如果不是很有必要,可以不使用适配器,而似乎直接对系统进行重构。

适配器模式的适用场景:

  1. 想要使用一个已经存在的类,但是它却不符合现有的接口规范,导致无法直接去访问,这时创建一个适配器就能间接去访问这个类中的方法。
  2. 我们有一个类,想将其设计为可重用的类(可被多处访问),我们可以创建适配器来将这个类来适配其他没有提供合适接口的类。

备忘录模式(Memento)

在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将该对象恢复到原先保存的状态。
在这里插入图片描述

备忘录模式的优点:

  1. 有时一些发起人对象的内部信息必须保存在发起人对象以外的地方,但是必须要由发起人对象自己读取,这时,使用备忘录模式可以把复杂的发起人内部信息对其他的对象屏蔽起来,从而可以恰当地保持封装的边界。
  2. 本模式简化了发起人类。发起人不再需要管理和保存其内部状态的一个个版本,客户端可以自行管理他们所需要的这些状态的版本。
  3. 当发起人角色的状态改变的时候,有可能这个状态无效,这时候就可以使用暂时存储起来的备忘录将状态复原。

备忘录模式的缺点:

  1. 如果发起人角色的状态需要完整地存储到备忘录对象中,那么在资源消耗上面备忘录对象会很昂贵。
  2. 当负责人角色将一个备忘录 存储起来的时候,负责人可能并不知道这个状态会占用多大的存储空间,从而无法提醒用户一个操作是否很昂贵。
  3. 当发起人角色的状态改变的时候,有可能这个协议无效。如果状态改变的成功率不高的话,不如采取“假如”协议模式。

备忘录模式的适用场景:

  1. 需要保存/恢复数据的相关状态场景。
  2. 提供一个可回滚的操作。

桥接模式(Bridge )

将抽象部分与它的实现部分分离,使他们都可以独立的变化。
在这里插入图片描述

桥接模式的优点:

  1. 抽象和实现分离。桥梁模式完全是为了解决继承的缺点而提出的设计模式
  2. 优秀的扩展能力
  3. 实现细节对客户透明。客户不用关心细节的实现,它已经由抽象层通过聚合关系完成了封装

桥接模式的缺点:

  1. 会增加系统的理解与设计难度。由于聚合关联关系建立在抽象层,要求开发者针对抽象进行设计与编程

桥接模式的适用场景:

  1. 不希望或不适用使用继承的场景
  2. 接口或抽象类不稳定的场景
  3. 重用性要求较高的场景
shelven丶
关注 关注
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
五种创建模式整理
baddog_的博客
06-08 699
第一种 单例模式 意图 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 构建模式 懒汉模式 线程不安全,使用时候加载 synchronized 加在方法名上 双重检测 静态内部类/登录模式 硬汉模式 优点: 1、在内存里只有一个实例,减少了内存的开销,尤其是频繁的创建和销毁实例(比如管理学院首页页面缓存)。 2、避免对资源的多重占用(比如写文件操作)。 缺点:没有接口,...
设计模式优缺点应用场景整理.docx
03-09
本文将详细解析几种重要的设计模式及其优缺点应用场景。 1. **桥接模式** - 优点:桥接模式通过将抽象部分与实现部分分离,实现了两者的独立扩展,降低了耦合度,使得接口和实现可以独立变化,同时不影响客户的...
十种常用设计模式(大部分自己总结,部分摘抄)
热门推荐
dean_hu的博客
05-05 22万+
最近公司需要重构一下老项目,所以重新总结了下一些常用设计模式。(有些内容摘自互联网)
设计模式优点
最新发布
✨ 欢迎来到【Seal ^_^ 的CSDN博客】!这里是我记录技术心得、分享经验的地方。✨
08-02 4739
简而言之,设计模式软件开发更加**高效**、**稳定**且**易于维护**。
设计模式、对应的应用场景以及优缺点有哪些?
weixin_37841366的博客
09-24 1325
设计模式从大的维度来说,可以分为三大类:创建型模式、结构型模式及行为型模式,这三大类下又有很多小分类。 创建型模式是指提供了一种对象创建的功能,并把对象创建的过程进行封装隐藏,让使用者只关注具体的使用而并非对象的创建过程。它包含的设计模式有单例模式、工厂模式、抽象工厂模式、建造者模式及原型模式。 结构型模式关注的是对象的结构,它是使用组合的方式将类结合起来,从而可以用它来实现新的功能。它包含的设计模式是代理模式、组合模式、装饰模式及外观模式。 行为型模式关注的是对象的行为,它是把对象之间的关系进行梳理
各个设计模式优缺点
w302974215的专栏
11-02 9451
设计原则 1、找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。 2、针对接口编程(实际上是针对超类编程),而不是针对实现编程。 策略模式(Strategy Pattern) 优点缺点:1.客户端必须知道所有的策略类,并自行决定使用哪一个策略类。       2.造成很多的策略类。 详细请参考:http://www.cnblogs.com/mengd
编程为什么要使用设计模式?使用设计模式的好处有哪些?
weixin_43354152的博客
11-04 808
为什么要使用设计模式?使用设计模式的好处是啥?代码的追求的目标是啥? 为了编写出满足要求的代码,我们应该遵循什么样的原则?
设计模式优缺点应用场景.docx
03-09
以上这些设计模式都有各自的适用场景优缺点,根据实际需求选择合适的设计模式能极大地提升代码的可读性、可维护性和扩展性。在实际开发中,理解并灵活运用这些模式,可以使代码结构更加优雅,同时提高开发效率。
设计模式优缺点应用场景.pdf
03-09
设计模式软件开发中的一种重要概念,它提供了一套通用的解决方案,用于解决...以上设计模式软件开发中都有各自的适用场景,熟练掌握它们可以提高代码的可维护性和可扩展性,是成为一名优秀程序员的关键技能之一。
设计模式优缺点应用场景整理.pdf
03-09
设计模式软件工程中的一种最佳实践...这些设计模式在实际开发中都有其特定的应用场景,选择合适的设计模式可以提高代码的可读性、可维护性和扩展性。理解和熟练运用这些模式是成为一名优秀软件开发者的关键技能之一。
设计模式优缺点应用场景整理.doc
09-25
每个设计模式都有其特定的优势和适用场景,理解和熟练运用这些模式可以提升软件设计的质量和可维护性。在实际项目中,根据需求和场景选择合适的设计模式,可以有效地解决问题并降低后期维护的难度。
八种架构设计模式及其优缺点概述(中)
w15868676598的博客
03-31 1223
1. 查询分离模式         这种模式主要解决单机数据库压力过大,从而导致业务缓慢甚至超时,查询响应时间变长的问题,也包括需要大量数据库服务器计算资源的查询请求。这个可以说是单库单应用模式的升级版本,也是技术架构迭代演进过程中的必经之路。         这种模式的一般设计见下图:         如上图所示,这种模式较单库单应用模式与内容分发模式多了几
设计模式的好处
yishouwangnian的博客
10-11 2276
设计模式的简单理解:模式是在某一背景下某个问题的一种解决方案。 1、复用解决方案——通过复用已经公认的设计,我能够在解决问题时取得先发优势,而且避免重蹈前人覆辙。我可以从学习他人的经验中获益,用不着为那些总是会重复出现的问题再次设计解决方案了。 2、确立通用术语——开发中的交流和协作都需要共同的词汇基础和对问题的共识。设计模式在项目的分析和设计阶段提供了共同的基准点。 3、提高观察高度--模式
设计模式优缺点(二)
像风走过八千里
02-06 1450
前言上篇博客描述的是创建型模式和结构型模式中的模式的优缺点适用场景,接下来就再学习一下行为型模式中模式的优缺点适用场景吧。正文1. 观察者模式优点:松耦合,使各自的变化不会影响另一边的变化 缺点:不能让以封装的观察者实现特定接口 适用场景:一个对象改变需要同时改变其他对象,而且不知道具体有多少对象有待改变2. 模板方法模式优点:代码复用,去除子类的重复代码,使子类摆脱重复的不变行为的纠缠
设计模式使用场景以及优缺点(一)
qq_41434612的博客
08-20 844
简单工厂(创建型)ps:不属于23种设计模式中 定义:由一个工厂对象决定创建出哪一种产品类的实例。 适用场景: 1、工厂类负责创建的对象比较少。 2、客户端只知道传入工厂类的参数,对于如何创建对象不关心。 优点:只需要传入一个正确的参数,就可以获取所需要的的对象,而无需知道其创建细节。 缺点:工厂类职责相对过重,增加新的产品需要修改工厂类的判断逻辑,违背开闭原则。 工厂方法模式(创建型) 定义:定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类。工厂方法让类的实例化推迟到子.
23种设计模式优缺点
qq_39251691的博客
01-27 4238
1、单例(Singleton)模式:某个类只能生成一个实例,该类提供了一个全局访问点供外部获取该实例,其拓展是有限多例模式。 2、原型(Prototype)模式:将一个对象作为原型,通过对其进行复制而克隆出多个和原型类似的新实例。 3、工厂方法(Factory Method)模式:定义一个用于创建产品的接口,由子类决定生产什么产品。 4、抽象工厂(AbstractFactory)模式:提供一个创建产品族的接口,其每个子类可以生产一系列相关的产品。 5、建造者(Builder)模式:将一个复杂对象..
各种设计模式优缺点
weixin_43244265的博客
09-13 2026
简单工厂模式 简单工厂模式就是让一个工厂类承担构建所有对象的职责。调用者需要什么产品,让工厂生产出来即可。 优点:将构建过程封装的好处不仅可以降低耦合,如果某个产品构造方法相当复杂,使用工厂模式可以大大减少代码重复。 缺点:一是如果需要生产的产品过多,此模式会导致工厂类过于庞大,承担过多的职责,变成超级类; ​ 二是当生成新产品时,必须在工厂类中添加新的分支。这违背了开闭原则 工厂方法模式 工厂方法模式就是将简单工厂的各个职责拆分成专业职责的工厂类 优点:工厂方法模式就是为了解决简单共厂
设计模式:工厂方法与简单工厂优缺点适用场景
设计模式软件开发中的重要概念,它们提供了一种解决常见问题的标准化方法,以提高代码的可复用性和可维护性。本资源集合主要关注23种设计模式中的两种——工厂方法模式和简单工厂模式,以及它们在系统架构和软件...
194
原创
174
点赞
627
收藏
44
粉丝
关注
私信
写文章

热门文章

  • C++中重载和重写的区别 15472
  • 高级数据结构——B*算法(Branch Star) 8356
  • 顺序存储和链式存储的优缺点 8047
  • C++ 虚函数,纯虚函数的作用和使用方法 8025
  • C++ operator(重载操作符) 6864

分类专栏

  • 算法 99篇
  • 11
  • 坎坷的求职路 2篇

最新评论

  • C++中重载和重写的区别

    latis小莱: 可访问区的定义是什么?

  • 高级数据结构——B*算法(Branch Star)

    guishiwa: 不是A*是这样的? 不是带阈值估计的嘛?????没搞清看能不能不要发误导别人

  • C++中重载和重写的区别

    捧着风、: 基类被重写函数一定要加virtual,不然无法被重写

  • C++中重载和重写的区别

    名を偏屈な炎: cpp里重写基类不一定要加virtual吧,子类可以覆盖父类的方法,也可以通过 子类对象.父类名::方法() 来调用父类被重写的方法

  • unity中的序列化

    chatillon_: 经常用unity的人应该知道,在运行时从Inspector改变脚本的变量是没有用的。因为结束运行之后又会还原成原来的值。 对于这个我的理解我和博主有点差异 数据实际上都保存在meta文件里,每次启动或者停止游戏时都会重新从meta文件里读取到内存中;运行时修改Inspector面板修改的是内存中的数据(如果只是修改了unity交互层,那为什么游戏里也会生效(比如运行中修改了跳跃的高度属性,游戏中跳跃的高度确实变化了,说明这影响的不仅仅是unity面板上的显示、也影响到了脚本和unity引擎))

最新文章

  • 幸运N串
  • 输出所有子串
  • 2020-08-07
2020年30篇
2019年184篇
2018年3篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

天下网标王肇庆网站优化维护绵阳网站综合优化优化速卖通网站建议网站排名优化来巧推网山东企业网站优化公司口碑好的网站优化软件汕头优化网站广州百度网站优化排名省心的网站关键词优化费用潮州网站优化联系电话东至网站优化方案密码子优化网站的使用方法好的优化的外贸网站是怎样的网站算法优化意义深圳门户网站优化服务如何巢湖网站关键词优化公司新版网站优化方法即墨网站优化牟平区品牌网站优化招远响应式网站优化公司车辆优化管理专业网站开封实力网站优化公司网站优化思路心得广州网站群发优化网站优化哪家专业衡东网站优化金堂网站建设与优化中牟网站搭建优化河北综合网站优化价格表肥东网络推广网站优化建设香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

天下网标王 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化