设计模式简介及资源

设计模式只是一个在构建大型工程时,为了方便更改,添加,查询和管理的一种代码工具,没有必要单独为了设计模式而使用设计模式,使简单的事情复杂化。

总体来说设计模式分为三大类:
1. 创建型模式,共五种 ---- 创建新东西 ---- 在创建对象的同时隐藏创建逻辑的方式,而不是使用新的运算符直接实例化对象      单例模式      工厂模式      抽象工厂模式      建造者模式      原型模式
2. 结构型模式,共七种 ---- 现有东西再组合 ---- 关注类和对象的组合,继承的概念被用来组合接口和定义组合对象获得新功能的方式       适配器模式      装饰器模式      代理模式      外观模式      桥接模式      组合模式      享元模式
3. 行为型模式,共十一种 ---- 现有东西加情绪 ---- 关注对象之间的通信       策略模式      模板方法模式      观察者模式      迭代子模式      责任链模式      命令模式      备忘录模式      状态模式      访问者模式      中介者模式      解释器模式
设计模式的六大原则
1. 开闭原则(Open Close Principle)---- 可扩不可改
  开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点

2. 里氏代换原则(Liskov Substitution Principle)---- 子可代父
  里氏代换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。里氏代换原则是对“开-闭”原则的补充。实现“开-闭”原则的关键步骤就是抽象化。而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。—— From Baidu 百科

3. 依赖倒转原则(Dependence Inversion Principle)---- 关注功能不关注实现
  这个是开闭原则的基础,具体内容:真对接口编程,依赖于抽象而不依赖于具体。

4. 接口隔离原则(Interface Segregation Principle)---- 功能要细化
  这个原则的意思是:使用多个隔离的接口,比使用单个接口要好。还是一个降低类之间的耦合度的意思,从这儿我们看出,其实设计模式就是一个软件的设计思想,从大型软件架构出发,为了升级和维护方便。所以上文中多次出现:降低依赖,降低耦合。

5. 迪米特法则(最少知道原则)(Demeter Principle)---- 自己解决
  为什么叫最少知道原则,就是说:一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立。

6. 合成复用原则(Composite Reuse Principle)---- 可拆卸
  原则是尽量使用合成/聚合的方式,而不是使用继承。
资源链接:1. https://github.com/TIGERB/easy-tips2. http://laravelacademy.org/resources/design-patterns3. http://designpatternsphp-zh-cn.readthedocs.io/zh_CN/latest/
时间: 2024-08-28 07:30:01

设计模式简介及资源的相关文章

多线程设计模式简介

多线程设计模式简介 随着CPU的生产工艺从提高CPU的主频率转向多核化,以往那种靠CPU主频率提升所带来的软件的性能提升的"免费午餐"不复存在.这使得多线程编程在充分发挥系统CPU资源以及软件性能方面起到了越来越重要的作用.然而,多线程编程本身又会引入开销和其他问题,如较之简单的单线程顺序编程的复杂性.线程安全问题.死锁.活锁以及上下文切换开销等.多线程设计模式是多线程编程领域的设计模式,它可以帮助我们解决多线程编程中的许多问题. 不使用锁的情况下保证线程安全:不可变对象模式(Immu

23种设计模式简介

创建型模式(Creational Pattern) 1. 抽象工厂模式(Abstract Factory Pattern) 介绍 提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类. 2. 建造者模式(Builder Pattern) 介绍 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. 3. 原型模式(Prototype Pattern) 介绍 用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象. 4. 工厂方法模式(Factory M

各类主流框架及设计模式简介

1,使用框架技术的优势:1)不用考虑公共问题,框架已经为我们做好了2)可以专心在业务逻辑上,保证核心业务逻辑的开发质量3)结构统一,便于学习,维护4)最重要的一点:框架中集成了前人的经验,可以帮助新手写出稳健.性能优良而且结构优美的高质量程序:2,什么是框架:框架(Framework)是一个提供了可重用的公共结构的半成品.一方面提供了可以拿来就用的工具,也提供了可重用的设计:框架使混乱的东西变得结构化:框架是一组协同工作的组件:3,java中的主流框架:1)Struts框架:是MVC设计模式的体

Visual Studio Tools for Office (VSTO) 简介及资源整理

之所以接触VSTO(Visual Studio Tools for Office )是因为接到一个公司的面试通知,需要测试你的学习能力,让自己以前没有做过这方面开发的情况下,基于VSTO对Excel进行二次开发,完成两个简单的task.由于网上这方面的资料相对较少,随把自己收集到的一些资料整理处理,希望能对大家有所帮助. 1. Office 编程 以前的Office编程一般都是通过VBA进行,VBA是一个很简单的开发环境,集成在很多Office的产品中.每个Office的产品,如Word,Exc

设计模式浅谈之----设计模式简介

1.何为设计模式 设计模式是一个通过定义.使用和测试去解决特定问题的方法,并且由于设计模式是在面向对象之后为人所知的,基本思想与面向对象不可分割. 在软件工程中,设计模式是一般只在给定条件下会重复性发生问题而提出的一种通用的解决方案. 2.设计模式简史 设计模式的概念在计算机科学领域的普及主要归功于1994年<设计模式:可复用面向对象的软件的基础>,作者GoF(即Erich Gamma.Richard Helm.Ralph Johnson 和 John Vlissides 四人) 3.设计模式

Java Web开发中MVC设计模式简介

一.有关Java Web与MVC设计模式 学习过基本Java Web开发的人都已经了解了如何编写基本的Servlet,如何编写jsp及如何更新浏览器中显示的内容.但是我们之前自己编写的应用一般存在无条理性,对于一个小型的网站这样的编写没有任何问题,但是一但我们需要编写大型的web工程的话,我们现有的编写模式会造成web应用的可扩展性较差,而且一但出现问题不能准确的定位出问题出在哪里. Java是一门应用设计模式比较广泛的语言.目前主流提出的23种设计模式均可在Java语言编写的程序中所应用.目前

【Java基础】Java设计模式简介

什么是设计模式 设计模式(Design pattern)是一套被反复使用.被多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性.设计模式不是一种方法和技术,而是一种思想设计模式,和具体的语言无关,但是本文以Java为语言基础来讲解,学习设计模式就是要建立面向对象的思想,尽可能的面向接口编程,低耦合,高内聚,使设计的程序可复用.设计模式大概可以归纳为如下几类: • 创建型模式:对象的创建 • 结构型模式:对象的组成(结构) • 行

【转】23种设计模式简介

转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/40031567 今天来对这23种设计模式做个总结.咱使用设计模式的目的是为了可重用代码.让代码更容易被他人理解.保证代码可靠性,当然设计模式并不是万能的,项目中的实际问题还有具体分析.咱不能为了使用设计模式而使用,而是在分析问题的过程中,想到使用某种设计模式能达到咱需要的效果,而且比不使用设计模式更有优势,那么咱该考虑使用设计模式了. 一.设计模式的一般分类 创建型(Creator)模式(

JavaBean在DAO设计模式简介

一.信息系统开发框架 客户层-------显示层-------业务层---------数据层---------数据库 1.客户层:客户层是client,简单的来说就是浏览器. 2.显示层:JSP/Servlet,用于给浏览器显示. 3.业务层:对于数据层的原子操作进行整合. 4.数据层:对于数据库进行的原子操作,添加.删除等: 二.DAO(Data Access Object)介绍 DAO应用在数据层那块,用于訪问数据库,对数据库进行操作的类. 三.DAO设计模式的结构 DAO设计模式一般分为几