2016-10-13 曹强
php
简介 根据目的和范围,设计模式可以分为五类。按照目的分为:创建设计模式,结构设计模式,以及行为设计模式。按照范围分为:类的设计模式,以及对象设计模式。下面分别介绍 。 创建设计模式 创建设计模式(Creational patterns),用于创建对象时的设计模式。更具体一点,初始化对象流程的设计模式。当程序日益复杂时,需要更加灵活地创建对象,同时减少创建时的依赖。而创建设计模式就是解决此问题的一类设计模式。 结构设计模式 结构设计模式(Structural patterns),用于继承和接口时的设计模式。结构设计模式用于新类的函数方法设计,减少不必要的类定义,减少代码的冗余。 行为设计模式 行为设计模式(Behavio 继续阅读 »
2016-09-10 曹强
前言 命名、抽象、标识是通用设计结构的主要方面,这些设计结构能被用于构造可复用的面向对象设计。设计模式确定所包含的类和实例、它们的角色、协作方式以及职责分配。 每一种设计模式都重点关注一个特定的对象设计问题或者设计要点,描述何时使用它,在另一些约束条件下是否还能使用,以及使用的效果和利弊。由于我们最终要实现设计,设计模式还是提供了示例,代码来阐明其实现。 虽然设计模式描述的是面向对象设计,但是他们都是基于实际的解决方案。这些设计方案的实现语言是主流面向对象的编程语言。 more 设计模式的分类 创建型设计模式 创建型设计模式专注于处理对象创建机制,以适合给定情况下的方式来创建对象,创建对象的基本方法都可能导致项目复杂性增 继续阅读 »
2018-03-03 Vaniot
设计模式 对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。面向对象设计模式来描述其中的关系和相互作用,但不涉及用来完成应用程序的特定类别或对象。设计模式能使不稳定依赖于相对稳定、具体依赖于相对抽象,避免会引起麻烦的紧耦合,以增强软件设计面对并适应变化的能力。 more 设计模式主要分类 设计模式可按作用及范围进行分类, - 按设计模式的作用 - 创建型 - 结构型 - 行为型 - 按范围划分 - 类 - 对象 创建型模式 模式名|范围|描述 --|--|-- 抽象工厂|类|为一个产品族提供统一的创建接口,当需要这个产品族的某一系列的时候,可以从抽象工厂中选出相应的系列创及那一 继续阅读 »
2015-03-09 litaotao
1. 设计模式概念   设计模式这个术语是由Erich Gamma等人在1990年代从建筑设计领域引入到计算机科学的。它是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。   设计模式并不直接用来完成代码的编写,而是描述在各种不同情况下,要怎么解决问题的一种方案。面向对象设计模式通常以类或对象来描述其中的关系和相互作用,但不涉及用来完成应用程序的特定类或对象。设计模式能使不稳定依赖于相对稳定、具体依赖于相对抽象,避免会引起麻烦的紧耦合,以增强软件设计面对并适应变化的能力。   并非所有的软件模式都是设计模式,设计模式特指软件“设计”层次上的问题。还有其它非设计模式的模式,如架构模式。同时,算法不能算是一种 继续阅读 »
2016-09-10 曹强
写在前面 从来没有系统地研究过设计模式,之前领悟出来的JavaScript设计模式那纯粹是个人兴起之作,和主流的大家们整理的设计模式还是有不少差距的。这次有幸看到了一本很不错的书。作者归纳地真的很不错,赞叹之余,不忘摘录几段分享给大家。 编写易于维护的代码,其中一个重要方面是能够找到代码中重复出现的主题并优化他们,这就是设计模式有价值的地方。 什么是模式 模式是一种可复用的解决方案,可用于解决软件设计中遇到的常见问题。 more 模式是已经验证的解决方案 模式很容易被复用 模式富有表达力 模式不是一种确切的解决方案,但可以为我们提供一个解决问题的方法 模式的优点 复用模式有助于防止在应用程序开发工程中小问题引发大问题。 继续阅读 »
2016-10-13 曹强
php
简介 在[PHP设计模式(七):设计模式分类][2]中我们提到过创建设计模式(Creation patterns),创建设计模式专注于设计对象(Object)和实例(Instance)的创建过程。 创建设计模式包括下面五种设计模式: 抽象工厂设计模式(Abstract Factory) 生成器模式(Builder) 工厂设计模式(Factory Method) 原型设计模式(Prototype Method) 单例设计模式(Singleton) 当程序逐渐扩展的时候,需要更多的新对象,新对象的创建不应该依赖于创建者,换句话说,新对象的创建过程,不应该依赖调用创建函数的对象。为了减少冗余,增加拓展性,工厂模式就是一种 继续阅读 »
2016-10-13 曹强
php
简介 在[PHP设计模式(八):工厂模式][2]中我们介绍了创建设计模式(Creation patterns)中的工厂模式,下面我们将介绍另一种原型设计模式(Prototype Method)。 在PHP中,原型设计模式依靠cloning复制对象来实现。通过cloning构造的对象,将大量节省新对象的构造时间。 何时使用原型设计模式? 简单来说,当你希望根据已有的对象来创建新对象时。 为什么会有这种需求?想象一下,你在做细胞分裂的项目,每一个细胞都是一个对象,现在你有一个细胞类,每一个新的细胞都是由这个类生成的,不同的细胞只是内部的状态参数不同。 当分裂到第N代的时候,已经和初代大不一样了,你是愿意使用第N代的副本 继续阅读 »
2015-09-21 derekchan
每个第三季度都是最忙的,工程师活动,部门事务,终于得以闲下来打理自己的网站了,之后会恢复发布文章的频率(每周至少一篇),有什么聊什么,也沉淀下自己的文笔。 PS:博客没怎么去推广,就当作自己跟自己的谈话吧。 今天来浅谈下设计模式中的单例模式。单例模式是最常用到的设计模式之一,有时候在单线程中需要多次调用到同一个类对象,每实例化一次,内存君就多创建一个内存地址,这样就造成了资源浪费,严重的冗余。利用单例模式则可以有效的减少这种资源浪费。 继续阅读 »
2015-07-30 derekchan
之前在学设计模式的时候,总会去查找相关的博客文章,但发现很多博主只写了几个模式就没写下去了,当初很是不明白,为什么不写完呢,现在自己来记录这些的时候,才体会到,常用的设计模式就那么几个,例如工厂模式、策略模式、单例模式,而且现在互联网资源那么多,完全没必要自己再去码字纪录,再后来也就造成了大家都是写那么几个就不写的情况。 继续阅读 »
2015-04-16 derekchan
《大话设计模式》里面,有这样一则小故事:小菜帮修过电脑的女同学(娇娇)找他吃饭,他借机问娇娇有没男朋友,娇娇却很残忍的告诉他已经有男朋友(戴励),小菜很好奇地想知道娇娇跟戴励的恋爱故事,之后两人就陷入了“回忆”当中。 “娇娇同学,这是有人送你的礼物。”一个男生手拿着一个芭比娃娃送到她的面前。 继续阅读 »