zoukankan      html  css  js  c++  java
  • 24种设计模式个人总结

    1.简单工厂模式,简单工厂模式就是根据传入参数的不同,函数可以返回不同类型的类,这在我们实际开发中可以减少很多代码量,比如说现在用ssh做的班级管理系统,其中查询班级的时候可以根据不同的编号,名字进行查询,这就需要简单工厂模式,可以减少和你多if。。。else。。。语句。也就是说创建一些来自于父类的类,可以传入不同的参数获得不同的对象。

    2工厂方法模式,工厂方法模式根本上说也就是简单工厂模式,他只是为了解决简单工厂模式不满足开闭原则进行拓展的。在工厂方法模式中,工厂不在负责创建而是给出实现的接口,将负责具体创建的交给子类,这就可以允许工厂方法模式在修改工厂角色的情况下,增加新的角色。

    3.抽象工厂模式,抽象工厂是工厂模式的泛化,工厂方法模式是抽象工厂模式的一种特殊情况。其实就是每一个工厂能生产多个产品,二工厂就只能生产一个。

    4.建造者模式,建造者模式就是讲一个复杂对象分解,一步一步的创建这个对象,指挥者只需要负责这个复杂对象的建造次序,和装配的方法。

    5.原型模式,原型模式是解决多次创建莫伊对象,只需要创建一个对象,热后根据这个母体复制出多个相同的对象。解决了创建过程复杂对象的多次创建。

    6.单例模式,单例模式就是确保一个类只有一个实例,这个类自行实例化并向整个系统提供这个实力局访问的方法。

    7.适配器模式,适配器模式最简单的比方就是国内和国外电压不同,插座也不同,这就需要一个转换器来使用,这个转换器就是适配器,将一个接口转换成客户需要的另一个接口。

    8.桥接模式。桥接模式就是将两个事物建立建立连接,比如说颜色和画笔,这样就大大减少类的创建,也就减少了代码量。

    9.组合模式,组合模式是描述整体与部分的关系,使整体与部分之间的操作都具有一致性,不用把他们区分开来,比如说我们经常用到的文件夹,里面的和外面的操作都一样。

    10装饰模式,装饰模式给我印象最深的就是变形金刚,他可以是汽车,也可以是机器人,也就是说我们在对象装饰前前和装饰后有什么不同,装饰模式可以在不创造更多的子类的情况下扩展功能。

    11外观模式,外观模式就是为子系统的一组接口提供了一个统一的界面,定义了一个高层接口,使得子系统更加容易被使用。

    12享元模式,享元模式运用共享技术实现对对象复用,就像我们现在的网络,多台计算机可以连接同一台wifi实现上网。

    13代理模式,如果我们不想直接引用一个对象,这时就需要一个代理,它可以在客户端和服务对象之间起到中介作用,代理还可以去掉不想让客户看到的信息或服务,和可以添加一些服务。

    14职责链模式,职责链模式就是将请求的发送者和接受者连成一条链,让请求在这条链上传递,知道有人能处理这个请求为之,比如说我们请假3天可以找辅导员,5天就需要找主任。。。。

    15命令模式,命令模式是对命令进行封装,将发出命令的责任和执行命令的责任分开。命令模式的类像一个遥控器一样,可以对注册其中的对象进行对应的操作。将命令模式进行修改,还可以设计成如果上一个命令未执行完毕就另下一个命令等待的功能。

    16解释器模式,解释器模式描述了如何为简单的语言定义文法

    17迭代器模式,提供一种方法来访问聚合对象,而不用暴露这个对象的内部。

    18中介者模式,中介者模式用一个中介者封装了一系列对象的交互,对象之间不需要显示的应用,如聊天室中发送者只需要考虑将消息发送给聊天室,每个成员接到消息是聊天室负责发送的。

    19备忘录模式,备忘录其实就是一种撤销机制,保存了用户以前的一些操作。

    20观察者模式,观察者模式顶一个一对多的关系,就是当一个状态发生改变时,其依赖的对象得到通知并更新。

    21状态模式,状态模式就是在对象发生状态改变时能改变行为

    22、策略模式,策略模式通常是把一系列的算法封装到一系列的策略里面

    23、模板方法,使得子类可以不改变一个算法的结构即可重定义该算法的某些步骤。这个方法更适合团队,有了模板,那么每个人即使写自己的类,其他人调用的时候也会有章法,知道每个方法的含义,不会出现只有自己认识自己的方法名的尴尬了。

    24、访问者模式,访问者模式可以在不改变各元素的类的前提下定义这些元素新的操作。

  • 相关阅读:
    Android中Context具体解释 ---- 你所不知道的Context
    JDK6、Oracle11g、Weblogic10 For Linux64Bit安装部署说明
    matplotlib 可视化 —— 定制 matplotlib
    matplotlib 可视化 —— 移动坐标轴(中心位置)
    matplotlib 可视化 —— 移动坐标轴(中心位置)
    matplotlib 可视化 —— 定制画布风格 Customizing plots with style sheets(plt.style)
    matplotlib 可视化 —— 定制画布风格 Customizing plots with style sheets(plt.style)
    指数函数的研究
    指数函数的研究
    指数分布的研究
  • 原文地址:https://www.cnblogs.com/hyluckydog/p/6666413.html
Copyright © 2011-2022 走看看