浅谈编程设计模式

设计模式主要分三个类型:创建型、结构型和行为型。
其中创建型有:
    一、Singleton,单例模式:保证一个类只有一个实例,并提供一个访问它的全局访问点
    二、Abstract Factory,抽象工厂:提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们的具体类。
    三、Factory Method,工厂方法:定义一个用于创建对象的接口,让子类决定实例化哪一个类,Factory Method使一个类的实例化延迟到了子类。
    四、Builder,建造模式:将一个复杂对象的构建与他的表示相分离,使得同样的构建过程可以创建不同的表示。
    五、Prototype,原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型来创建新的对象。
行为型有:
    六、Iterator,迭代器模式:提供一个方法顺序访问一个聚合对象的各个元素,而又不需要暴露该对象的内部表示。
    七、Observer,观察者模式:定义对象间一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知自动更新。
    八、Template Method,模板方法:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,TemplateMethod使得子类可以不改变一个算法的结构即可以重定义该算法得某些特定步骤。
    九、Command,命令模式:将一个请求封装为一个对象,从而使你可以用不同的请求对客户进行参数化,对请求排队和记录请求日志,以及支持可撤销的操作。
    十、State,状态模式:允许对象在其内部状态改变时改变他的行为。对象看起来似乎改变了他的类。
    十一、Strategy,策略模式:定义一系列的算法,把他们一个个封装起来,并使他们可以互相替换,本模式使得算法可以独立于使用它们的客户。
    十二、China of Responsibility,职责链模式:使多个对象都有机会处理请求,从而避免请求的送发者和接收者之间的耦合关系
    十三、Mediator,中介者模式:用一个中介对象封装一些列的对象交互。
    十四、Visitor,访问者模式:表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素类的前提下定义作用于这个元素的新操作。
    十五、Interpreter,解释器模式:给定一个语言,定义他的文法的一个表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。
    十六、Memento,备忘录模式:在不破坏对象的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。
结构型有:
    十七、Composite,组合模式:将对象组合成树形结构以表示部分整体的关系,Composite使得用户对单个对象和组合对象的使用具有一致性。
    十八、Facade,外观模式:为子系统中的一组接口提供一致的界面,fa?ade提供了一高层接口,这个接口使得子系统更容易使用。
    十九、Proxy,代理模式:为其他对象提供一种代理以控制对这个对象的访问
    二十、Adapter,适配器模式:将一类的接口转换成客户希望的另外一个接口,Adapter模式使得原本由于接口不兼容而不能一起工作那些类可以一起工作。
    二十一、Decrator,装饰模式:动态地给一个对象增加一些额外的职责,就增加的功能来说,Decorator模式相比生成子类更加灵活。
    二十二、Bridge,桥模式:将抽象部分与它的实现部分相分离,使他们可以独立的变化。
    二十三、Flyweight,享元模式
时间: 2024-10-11 18:05:10

浅谈编程设计模式的相关文章

浅谈php设计模式(1)---工厂模式

一.接口继承直接调用 先看看这样一段代码: 1 <?php 2 3 interface db{ 4 function conn(); 5 } 6 7 class dbmysql implements db { 8 public function conn(){ 9 echo "连接到了mysql"; 10 } 11 } 12 13 class dbsqlite implements db{ 14 public function conn(){ 15 echo "连接到了

C语言之通过冒泡排序浅谈编程思想

写这篇博文的目的是想起到抛砖引玉的作用,还请大牛们留下一些先进的思想,让小菜学习一下.下面入正题. 复习C语言怎么能少的了冒泡呢,记得刚学C语言那会,感觉冒泡排序真的太复杂了,理解不大了,嗯!还是当时的功底不够啊.当时一些冒泡都头疼,感觉这么多的循环(哈哈!!其实也就俩,当时就是感觉太复杂).现在再写冒泡排序,感觉自己当时学C语言的时候是不是太笨了呢. 仔细想想,之前写冒泡之所以感觉到难是没有真正的理解冒泡的思想,就硬着头皮写,结果可以想象,是以失败而告终的.现在写代码也有一段时间了,学的编程语

浅谈-Java设计模式之动态代理

动态代理模式(Dynamic Proxy Pattern): 在java的动态代理机制中,有两个重要的类或接口,一个是 InvocationHandler(Interface).另一个则是 Proxy(Class),这一个类和接口是实现我们动态代理所必须用到的. 首先我们先来看看java的API帮助文档是怎么样对这两个类进行描述的: InvocationHandler该接口唯一方法 invoke(Object proxy, Method method, Object[] args) Object

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

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

浅谈JAVA设计模式

没有万行的代码量,就不要想搞清楚设计模式.目前本人代码量大约在六千五百行,2016年需要继续努力,尽快完成万行之约. 工作之余需要,下面提前简单讨论一下设计模式. 1.代理模式 db数据库组件代理ibatis开源组件 1 public static PersistService createPersistClient(String alias) 2 { 3 PersistService service = null; 4 try 5 { 6 service = new PersistServic

浅谈MVC设计模式和SSH框架的关系

一.MVC:是指Model-View-Controler,是程序的一种分层模式,是一种思想. MVC是Model-View-Controler的简称.即模型-视图-控制器.MVC是一种设计模式,它强制性的把应用程序的输入.处理和输出分开. MVC中的模型.视图.控制器它们分别担负着不同的任务. 视图: 视图是用户看到并与之交互的界面.视图向用户显示相关的数据,并接受用户的输入.这些需要显示的数据既可以是静态数据,也可以是服务端存入域对象中的动态数据.在视图中其实没有任何的业务逻辑处理发生,它只是

浅谈编程思路以及感想

学了很长时间的编程,有什么心得和体会? 编程中最复杂的莫过于构建复杂的数据结构,因为我们在学习数据结构的时候,好多数据结构都比较成熟,有很多时候,你都没有现成的数据结构去套,你能将其表示出来吗?所以一定要将数据结构学精通,才能知道人家是怎么样构建数据结构的. 其次是算法设计与分析? 其实算法就比较成熟了,数学理论发展的这么好,其实你就是多看看数学,多见识别人的算法就可以无形中形成自己的算法,等到将来见识的越多,天下所有的算法都将会融入到你的算法中,自行为你所用. 如何编程? 步骤1:构造出数据结

【Java基础】浅谈常见设计模式

Num1:单例模式 基本概念:保证一个类仅有一个实例,并提供一个访问它的全局访问点. 常见写法: 懒汉式 public class Singleton { /* 持有私有静态实例,防止被引用,此处赋值为null,目的是实现延迟加载 */ private static Singleton instance = null; /* 私有构造方法,防止被实例化 */ private Singleton() {} /* 1:懒汉式,静态工程方法,创建实例 */ public static Singleto

浅谈Python设计模式 - 外观模式

声明:本系列文章主要参考<精通Python设计模式>一书,并且参考一些资料,结合自己的一些看法来总结而来. 外观模式 外观模式的核心在于将复杂的内部实现包装起来,只向外界提供简单的调用接口.类似现实世界中的电脑,开机按钮可以说就是一个简单的调用接口,帮用户屏蔽了复杂的内部电路. 外观设计模式 -- 有助于隐藏系统的内部复杂性,并且通过一个简化的接口向客户端暴露必要的部分.本质上,外观是在已有复杂系统之上实现的一个抽象层. 本来想引用书中的例子,但是其整个代码被复杂化,不好理解.然后在网上看到一