首页 博鱼(官方)综合体育app下载 -手机版APP下载 成功案例 网站建设 电商设计 新闻中心 联系博鱼综合体育
QQ联系
电话联系
手机联系
QQ联系
电话联系
手机联系

互联网常用设计模式——通往架构师的第一步博鱼体育官方网站

发布时间:2023-08-26 00:26
发布者:小编
浏览次数:

  博鱼体育官方网站Christopher Alexander 说过:“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动”。

  设计模式开发的规范,最优的方案,选择合适的模式可大大提高开发效率,少走弯路。如果将设计模式比喻成“三十六计”,那么每一个模式都是一种计策,它为解决某一类问题而诞生,设计模式能很好的解决一些问题。

  常见的结构型模式有:Adapter 适配器模式;Decorator 装饰器模式;Proxy 代理模式

  注意:在常用的23种设计模式中其实面没有委派模式(Delegate)的影子,但是在Spring中委派模式确实用的比较多的一种模式,Spring MVC框架中的DispatcherServlet其实就用到了委派模式。

  单例模式:Singleton的作用是保证在应用程序中,一个类Class只有一个实例存在。并提供全局访问。Singleton限制了实例个数,有利于GC的回收。

  策略模式:策略模式针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。策略模式把行为和环境分开。环境类负责维持和查询行为类,各种算法在具体的策略类中提供。由于算法和环境独立开来,算法的增减,修改都不会影响到环境和客户端。

  原型模式:通过给出一个原型对象来指明所要创建的对象的类型,然后用复制这个原型对象的方法创建出更多同类型的对象。原始模型模式允许动态的增加或减少产品类,产品类不需要非得有任何事先确定的等级结构,原始模型模式适用于任何的等级结构。缺点是每一个类都必须配备一个克隆方法

  因为Java中的提供clone()方法来实现对象的克隆,所以Prototype模式实现一下子变得很简单。

  工厂模式:定义一个用于创建对象的接口,让接口子类通过工厂方法决定实例化哪一个类。

  装饰模式:装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案,提供比继承更多的灵活性。动态给一个对象增加功能,这些功能可以再动态的撤消。增加由一些基本功能的排列组合而产生的非常大量的功能。

  使用Decorator的理由是:这些功能需要由用户动态决定加入的方式和时机。Decorator提供了即插即用的方法,在运行期间决定何时增加何种功能。

  适配器模式:把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口原因不匹配而无法一起工作的两个类能够一起工作。适配类可以根据参数返还一个合适的实例给客户端将两个不兼容的类纠合在一起使用,属于结构型模式,需要Adaptee(被适配者)和Adaptor(适配器)两个身份。

  为何使用?我们经常碰到要将两个没有关系的类组合在一起使用,第一解决方案是:修改各自类的接口,但是如果我们没有源代码,或者,我们不愿意为了一个应用而修改各自的接口。 怎么办? 使用Adapter,在这两种接口之间创建一个混合接口(混血儿)。

  代理模式:代理模式给某一个对象提供一个代理对象,并由代理对象控制对源对象的引用。代理就是一个人或一个机构代表另一个人或者一个机构采取行动。

  某些情况下,客户不想或者不能够直接引用一个对象,代理对象可以在客户和目标对象直接起到中介的作用。客户端分辨不出代理主题对象与真实主题对象。代理模式可以并不知道真正的被代理对象,而仅仅持有一个被代理对象的接口,这时候代理对象不能够创建被代理对象,被代理对象必须有系统的其他角色代为创建并传入。

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

  模板模式:模板方法模式准备一个抽象类,将部分逻辑以具体方法以及具体构造子的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。

  不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。先制定一个顶级逻辑框架,而将逻辑的细节留给具体的子类去实现。

  设计上的事就是这样,想到了, 就能比较优雅的解决问题,想不到的话, 就只能使用到处修改代码的方法比较笨拙的应对问题,还容易将项目弄的混乱。当然也建议你们看看这套关于设计模式视频,放在群895244712里面 或许会给你们一些启发。

  现在我比较庆幸当初学习了设计模式,而没有听其他人的“建议”:我们做的项目中用不到设计模式,学这个没用。设计模式是个好东西,以后肯定还要进一步的学习,并且在项目中多实践,提升自己的设计能力。

  其实设计模式并不难,难的是真正领悟它的精妙,并且能灵活的运用于日常项目的开发。