设计模式浅析(一)

     前言:html

         我学习设计模式主要根据http://blog.csdn.net/lovelion/article/details/17517213 来学习的 太牛了 。够我玩好几年吧 哈哈哈哈哈!!!设计模式解决的问题是:设计模式用于在特定的条件下为一些重复出现的软件设计问题提供合理的、有效的解决方案。数据库

     结合来看吧,从招式与内功谈起——设计模式概述(一) :模式:是在特定环境下人们解决某类重复出现问题的一套成功或有效的解决方案。【A pattern is a successful or efficient solution to a recurring  problem within a context】。由"四人组"简称GOF 将模式引入软件工程方面。标志着软件模式的诞生--软件模式并不是仅限于设计模式,还包括架构模式、分析模式和过程模式等,实际上,在软件开发生命周期的每个阶段都存在着一些被认同的模式。编程

   软件模式的基础结构主要由四部分构成,包括问题描述【待解决的问题是什么】、前提条件【在何种环境或约束条件下使用】、解法【如何解决】和效果【有哪些优缺点】 设计模式

       从招式与内功谈起——设计模式概述(二)设计模式可分为建立型(Creational),结构型(Structural)和行为型(Behavioral)三种,其中创建型模式主要用于描述如何建立对象,结构型模式主要用于描述如何实现类或对象的组合,行为型模式主要用于描述类或对象怎样交互以及怎样分配职责 。架构

      23种设计模式中包含5种建立型设计模式、7种结构型设计模式和11种行为型设计模式。设计模式还能够分为类模式对象模式学习

此外,还有个简单工厂模式 没有列入23种设计模式里,但它属于设计模式。spa

表1  经常使用设计模式一览表(我要改了哈哈先学几个慢慢来).net

类型设计

模式名称代理

学习难度

使用频率

建立型模式

Creational Pattern

单例模式

Singleton Pattern

★☆☆☆☆

★★★★☆

简单工厂模式

Simple Factory Pattern

★★☆☆☆

★★★☆☆

工厂方法模式

Factory Method Pattern

★★☆☆☆

★★★★★

抽象工厂模式

Abstract  Factory Pattern

★★★★☆

★★★★★

原型模式

Prototype Pattern

★★★☆☆

★★★☆☆

 

   

结构型模式(都不知道)

Structural Pattern

适配器模式

Adapter Pattern

★★☆☆☆

★★★★☆

桥接模式

Bridge  Pattern

★★★☆☆

★★★☆☆

组合模式

Composite  Pattern

★★★☆☆

★★★★☆

装饰模式

Decorator  Pattern

★★★☆☆

★★★☆☆

外观模式

Façade  Pattern

★☆☆☆☆

★★★★★

享元模式

Flyweight  Pattern

★★★★☆

★☆☆☆☆

代理模式

Proxy  Pattern

★★★☆☆

★★★★☆

行为型模式

Behavioral Pattern

职责链模式

Chain  of Responsibility Pattern

★★★☆☆

★★☆☆☆

命令模式

Command  Pattern

★★★☆☆

★★★★☆

解释器模式

Interpreter  Pattern

★★★★★

★☆☆☆☆

迭代器模式

Iterator  Pattern

★★★☆☆

★★★★★

中介者模式

Mediator  Pattern

★★★☆☆

★★☆☆☆

备忘录模式

Memento  Pattern

★★☆☆☆

★★☆☆☆

观察者模式

Observer  Pattern

★★★☆☆

★★★★★

状态模式

State  Pattern

★★★☆☆

★★★☆☆

策略模式

Strategy  Pattern

★☆☆☆☆

★★★★☆

模板方法模式

Template  Method Pattern

★★☆☆☆

★★★☆☆

访问者模式

Visitor  Pattern

★★★★☆

★☆☆☆☆

    从招式与内功谈起——设计模式概述(三):做者的学习心得吧,学习设计模式应该理解,这个设计模式的意图,解决什么问题,何时用;它是如何解决的,掌握它的结构图,记住它的关键代码;可以想到至少两个它的应用实例,一个生活中的,一个软件中的;这个模式的优缺点是什么,在使用时要注意什么。当你可以回答上述全部问题时,恭喜你,你了解一个设计模式了,至于掌握它,那就在开发中去使用吧,用多了你天然就掌握了。对模式的学习不要急于求成!!!!!开闭原则是目标,里氏代换原则是基础,依赖倒转原则是手段

   面向对象设计原则概述:原则:如何同时提升一个软件系统的可维护性和可复用性是面向对象设计须要解决的核心问题之一。

 最多见的7种面向对象设计原则(我还不太理解哈哈先了解下 我有添加连接之后看)

    面向对象设计原则之单一职责原则:定义:一个类只实现一个功能领域的相关职责,拿做者的例子来说,本来一个类要实现 数据库连接、数据则删改查、和图表生成等。如今分为三个类实现。单独实现这些功能,以达到高内聚,低耦合的目的。

  面向对象设计原则之开闭原则定义:一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽可能在不修改原有代码的状况下进行扩展。抽象化是实现开闭原则的重因素。看这个须要理解抽象类和接口的区别(抽象方法是必须实现的方法,在实际应用中他们仍是有必定的差异,

抽象类般做为公共的父类为子类的的扩展作基础。这里扩展包括属性上或行为上)

接口是通常不考虑属性,只考虑方法子类能够自由的填补或扩展接口的方法。偏重于行为。许多状况下接口是能够代替抽象类的 (若是你不须要刻意表达属性上的继承的话)

接口是公开的里面不能有私有的方法或变量,是用于让别人使用的,抽象类是能够有私有方法或私有变量的

接口能够实现多重继承,而一个类只能继承一个父类。。。。。。就说到这吧,要跑题了。。。。具体详解

  面向对象设计原则之里氏代换原则定义:全部引用基类(父类)的地方必须能透明地使用其子类的对象。我看例子明白 感受和开闭原则很类似,在程序中尽可能使用基类类型来对对象进行定义,而在运行时再肯定其子类类型,用子类对象来替换父类对象(不太明白)

  面向对象设计原则之依赖倒转原则: 定义:抽象不该该依赖于细节,细节应当依赖于抽象。换言之,要针对接口编程,而不是针对实现编程。就是变量、参数、方法返回、数据类型转换等都要用抽象定义声明,再经过依赖注入(构造注入、设值注入和接口注入)的方式将具体对象注入到有依赖关系的对象中。我其实不太明白 。。。但有了基本了解。就是不具体定义 声明 等、抽象化实现。下篇见。

学习资料:http://blog.csdn.net/lovelion/article/details/17517213

相关文章
相关标签/搜索