博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
大话设计模式总结【第一遍】(部分1)
阅读量:2241 次
发布时间:2019-05-09

本文共 1251 字,大约阅读时间需要 4 分钟。

   感受设计演变过程中所蕴含的大智慧,体会乐与怒的程序人生中值得回味的一幕幕。

设计模式:

   设计模式(DesignPattern)是人们经过反复使用,结合代码设计经验总结出来的一套理论。其主要目的是通过封装、继承、多态保证代码的安全性,让人们更容易理解,并且提高代码的可重用性。为此利用设计模式编写的代码真正实现了工程化。就像盖房子一样,设计模式是软件工程的基石脉络。

   下面让我来解释大话设计模式中总结的几种设计模式。

简单工厂模式:

  这个模式本身很简单而且使用在业务较简单的情况下。一般用于小项目或者具体产品很少扩展的情况(这样工厂类才不用经常更改)。

它由三种角色组成:

工厂类角色:这是本模式的核心,含有一定的商业逻辑和判断逻辑,根据逻辑不同,产生具体的工厂产品。

抽象产品角色:它一般是具体产品继承的父类或者实现的接口。由接口或者抽象类来实现。

具体产品角色:工厂类所创建的对象就是此角色的实例。

策略模式:

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

  策略模式是一种定义一个系列算法的方法,使得所遇的算法完成的都是相同的工作,只是实现不同,也就是说:它可以以相同的方式调用所有的算法,保证了各种算法与使用算法类之间的耦合。

单一责任原则:

  含义:就一个类而言,应该仅有一个引起他变化的原因。

  软件设计真正要做的许多内容,就是发现对象的职责并把那些职责相互分离。如果你能够发现两个即以上的对象去控制同一个类的变化,那么这个类就有多于一个的责任。

开放-封闭原则:

  含义:是说软件实体(类、模块、函数等等)应该可以扩展,但是不可修改。

  开放封闭原则下的设计能面对需求的改变求可以保持相对稳定,从而使得系统可以在第一个版本后不断推出新的版本。

  实际生活中,无论模块是多么封闭,都会有一些无法对之封闭的变化,既然不可能完全封闭,设计人员必须对于他设计的模块应该对哪些变化封闭做出选择。他必须先猜测出最有可能发生的变化种类,然后构造抽象来隔离哪些变化。当变化发生时立即采取行动,在最初编写代码时,假设变化不会发生。当变化发生时,我们就创建抽象来隔离以后发生的同类变化。面对需求,对程序的改动是通过增加新代码进行的,而不是更改现有的代码。

依赖倒转原则:

  高层模块不要依赖低层模块;抽象不应该依赖细节,细节应该依赖与抽象。就是要针对接口编程,不要对现实编程。

装饰模式:

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

  用自己的话就是可以将所需的功能按正确的顺序串起来执行。

代理模式:

  含义:为其他对象提供一种代理以控制对这个对象的访问。

  也就是说,在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。这样代理(媒人)既起到了中介作用(送礼物),又能保护目标对象(求婚人)。

  好了,今天就说这么多了,剩下模式的明天再解释。

  编程是一门技术,更是一门艺术。

转载地址:http://qihbb.baihongyu.com/

你可能感兴趣的文章
Java网络编程与NIO详解11:Tomcat中的Connector源码分析(NIO)
查看>>
深入理解JVM虚拟机1:JVM内存的结构与消失的永久代
查看>>
深入理解JVM虚拟机3:垃圾回收器详解
查看>>
深入理解JVM虚拟机4:Java class介绍与解析实践
查看>>
深入理解JVM虚拟机5:虚拟机字节码执行引擎
查看>>
深入理解JVM虚拟机6:深入理解JVM类加载机制
查看>>
深入了解JVM虚拟机8:Java的编译期优化与运行期优化
查看>>
深入理解JVM虚拟机9:JVM监控工具与诊断实践
查看>>
深入理解JVM虚拟机10:JVM常用参数以及调优实践
查看>>
深入理解JVM虚拟机12:JVM性能管理神器VisualVM介绍与实战
查看>>
深入理解JVM虚拟机13:再谈四种引用及GC实践
查看>>
Spring源码剖析1:Spring概述
查看>>
Spring源码剖析2:初探Spring IOC核心流程
查看>>
Spring源码剖析5:JDK和cglib动态代理原理详解
查看>>
Spring源码剖析6:Spring AOP概述
查看>>
【Linux】进程的理解(二)
查看>>
【Linux】vim的简单配置
查看>>
【C++】构造函数、析构函数抛出异常的问题
查看>>
【C++】关于vector<bool>
查看>>
DB理论--数据存储方式
查看>>