计算机程序的思维逻辑 (54) - 剖析 Collections - 设计模式
上节我们提到,类 Collections 中大概有两类功能,第一类是对容器接口对象进行操作,第二类是返回一个容器接口对象,上节我们介绍了第一类,本节我们介绍第二类。 第二类方法大概可以分为两组: 接受其他类型的数据,转换为一个容器接口,目的是使其他类型的数据更为方便的参与到容器类协…
[译] SOLID: Part 1 - 单一职责
翻译的一遍关于单一职责的文章
PHP 单例模式解析和实战
介绍了如何使用 PHP 的单例模式
设计模式之依赖倒置原则
摘抄自设计模式之禅的依赖倒置原则
LOL设计模式之「策略模式」
之前写过一篇什么是「设计模式」?,没有类图,没有代码,有些同学说看不太懂,今天给大家带来策略模式(有图,有码,有真相!)。 英雄联盟(LOL)玩过LOL的同学都知道,LOL有上百个英雄,如果用OO技术来设计这些英雄该怎么办?小明:简单,先来个父类(Superclass),然后让…
设计模式系列 11-- 桥接模式
image 假设要实现一个给客户发送提示消息的功能,发送的消息类型可分为:普通消息、加急消息、特加急消息等等,而每种消息的发送的方式一般有:系统内推送、手机短信、电子邮件等等。如果让我们来实现,会怎么做呢? 我们先来实现一个简单的版本,使用系统推送和电子邮件发送普通消息,实现起…
php 设计模式 - 策略模式
php 设计模式 - 策略模式
设计模式系列7--组合模式
场景分析 我们平时去餐厅吃饭,都会使用菜单来点餐,今天我们来实现一个超级菜单,这个一个菜单大集合,包括单一菜品和子菜单,如图所示: image 可以看到上面的菜单不但包括单个的菜品项目,还包括子菜单项目,子菜单也包含一系列菜品或者子菜单。 我们现在想实现两个个需求: 如果是菜单…
服务的设计模式
聊聊游戏服务端开发以及 APP 后端开发中,几种常见的 RPC 定义 pattern。
设计模式系列5--代理模式
今天我们来学习下什么是代理模式和如何运用它去解决一些常见的问题,代理模式大概分为如下几大类: 远程代理(Remote Proxy):为一个位于不同的地址空间的对象提供一个本地的代理对象,这个不同的地址空间可以是在同一台主机中,也可是在另一台主机中,远程代理又称为大使(Ambas…
设计模式系列 6-- 命令模式
生活场景分析 今天来学习命令模式,先从一个生活中的例子入手吧,这样理解起来也比较容易。大家应该有用过那种万能遥控器吧,就是那种能遥控各种品牌的空调或者电视的遥控器,我们只要在遥控器上设定具体的电器品牌,就可以遥控了,可以切换到任何支持的品牌的电器。 我们今天也来做一个万能遥控器…
php 设计模式 - 适配器模式
将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作
设计模式系列8--策略模式
场景分析 我们在网上购买商品的时候,经常遇到各种打折优惠活动,不同的节假日或者时间优惠策略都不相同,如果让我们去实现,那么如何做呢? 常规做法是根据不同的优惠政策,使用if进行判断,写很多判断分支进行处理。类似下面这种。 if (正常价格) { //具体优惠策略处理 }else…
设计模式之代理模式
Java 中的代理模式
PHP 实战之设计模式:PHP 中的设计模式
本文主要讨论下 Web 开发中,准确而言,是 PHP 开发中的相关的设计模式及其应用。有经验的开发者肯定对于设计模式非常熟悉,但是本文主要是针对那些初级的开发者。首先我们要搞清楚到底什么是设计模式,设计模式并不是一种用来解释的模式,它们并不是像链表那样的常见的数据结构,也不是某种特殊的应用或者框架设计。事实上,设计模式的解释如下:
设计模式(三) -- 使用策略模式使每个行为隔离
主要描述了自己使用策略模式的实际场景,以及策略模式的简介
设计模式 (二) 三种适配器模式 总结和使用场景
总结类适配器模式、对象的适配器模式、接口的适配器模式的优缺点以及适配器模式的使用场景,并提供 Android 源码中的影子。
设计模式速谈:五、建造者模式
今天我们继续来聊设计模式。在上一篇中我们讲解了 “工厂模式” 的另一种更加抽象的形式 —— “抽象工厂模式”,这种模式适用于属于不同产品族但属于相同产品等级产品的构建。今天要介绍的仍然是 “创建型” 设计模式的一种 —— “建造者模式”。
State 设计模式
State 模式在实际使用中比较多,适合『状态的切换』
php 设计模式 - 数据对象映射模式
php 设计模式 - 数据对象映射模式
设计模式速谈:六、单例模式
在上一篇文章中文我们谈到了 “创建型” 设计模式中的 “建造者模式”,如果用一句话来概括“建造者模式” 的精髓,那就是 “工头制定计划带着工人的灵感跟客户一起做工程”,这样是不是变得很好理解了呢?今天我们要谈到的仍然是“创建型” 中的一种 —— “单例模式”。
浅谈依赖注入与控制反转
前言:设计模式其实是一个很空洞的东西,设计模式有几十种,有些人觉得工厂模式也单例模式已经足够解决大部分问题。而有些人觉得任何设计模式都会让开发变得更 “复杂”,更 “低效”。所以千万不要太过追求他的实际意义和作用,否则你已经坠入云雾。但是不管怎么样,实际工作中还是要对它们有所了解,下面从 php 的角度来讲一下依赖注入、控制反转、反射等概念
设计模式之观察者模式
设计模式之观察者模式
设计模式之策略模式
设计模式之策略模式
设计模式(二) -- 解耦利器观察者模式
主要介绍了自己使用到的 spring 的事件机制,底层这也是观察者模式的应用。 以及介绍了 java 中的 Observer 观察者接口 以及 Observable 主题接口
php 设计模式 - 观察者模式
php 设计模式 - 观察者模式
面向对象与设计模式
大一的时候学校就开了 C 语言这门课,最开始糊里糊涂无从下手,后来慢慢写了几个几百行的小程序就逐渐明白编程是怎么一回事了,还以为自己都懂了(too young 啊),可是后来蹭了一节 java 公选课,才知道还有面向对象编程这么一回事。老师说 C 是面向过程的,代码超过十万行就不好组织管理了,还得要面向对象的语言才能解决这个问题。我当时仿佛发现了一个新大陆,于是就开启了自学 java 面向对象编程的路程。
做什么事都需要遵循一些准则,设计模式也不例外。本文详细介绍了设计模式一般遵循的七大基本原则,每个原则都会有例子说明,并用具体代码进行实现。
php 设计模式 - 抽象工厂模式
php 设计模式 - 抽象工厂模式
php 设计模式 - 工厂模式
php 设计模式 - 工厂模式
设计模式 (一) 工厂模式 五种写法总结
设计模式相关的文章学习与总结,一直有意为之,一直又觉得时机不到。
一 是怕自己代码经验还不够,学习了也不懂,强行理解没有意义。
二 是怕自己学习了以后总结出来,万一有不对的地方,误人子弟。
而在现在的公司摸爬滚打半年后,感觉自己写代码遇到了瓶颈,想写好写优雅,却不清楚这么写究竟是自以为优雅 还是真的优雅。或对着看一些系统源码、框架源码时,不太理解他们这么写是为什么。
于是我开始了学习之路,从比较简单的工厂模式开刀,看了大概 10 + 篇资料,发现各位大大对工厂模式的各种写法叫法不一,理解也不一,而且没有一篇是 ** 比较全的收录各种写法 ** 的。so,这也坚定了我将它总结写出来的决心,既然每个人的理解都有或多或少的缺失或冲突,那我也总结一份我的理解,呈现出来,供各位看官参考 点评。
php 设计模式 - 单例模式
单例模式概念
一个类有且仅有一个实例,并且自行实例化向整个系统提供
单例模式的特点
一个类在整个应用中只有一个实例
类必须自行创建这个实例
必须自行向整个系统提供这个实例
代理模式的学习与使用
详细介绍静态代理,动态代理模式的由来,原理,及使用。
PHP 中的设计模式详解
本文主要讨论下 Web 开发中,准确而言,是 PHP 开发中的相关的设计模式及其应用。有经验的开发者肯定对于设计模式非常熟悉,但是本文主要是针对那些初级的开发者。首先我们要搞清楚到底什么是设计模式,设计模式并不是一种用来解释的模式,它们并不是像链表那样的常见的数据结构,也不是某种特殊的应用或者框架设计。
设计模式速谈:一、序论
大家在平时的日常工作开发中,可能经常会听到 “设计模式” 这个词,那么到底什么是设计模式呢?如果要是按照课本上的方式来讲解,估计十篇博客也无法将它讲解透彻。“设计模式”的理论知识固然重要,但理论也是为了实践所做的基础,不要仅仅被理论就搞昏了头脑。
php 设计模式 - 装饰器模式
php 设计模式 - 装饰器模式
趣味设计模式
“设计模式” 是在面向对象软件设计过程中针对特定问题的简洁而优雅的解决方案。通俗一点说, 设计模式是在某种场合下对某个问题的一种解决方案。如果再通俗一点说, 设 计模式就是给面向对象软件开发中的一些好的设计取个名字。23 种设计模式来源于 GoF 总结常见的设计模式录入《设计模式: 可复用面向对象软件的基础》。
php 设计模式 - 注册树模式
php 设计模式 - 注册树模式
聊聊设计模式(3):门面模式
Facade,中文译为门面、外观,所以本文要讲的 Facade Pattern 翻译时经常看到有两个名字,门面模式和外观模式。
「漫谈技术」需要注意的软件开发模式
做软件开发十数年,见识了形形色色的开发者,和各种各样的奇葩软件开发模式。本文跟你侃侃这些软件开发模式及其特点。
策略模式(从放弃到入门)
例子来自 HeadFirst 设计模式,理解简单,逐步加深
php 设计模式 - 迭代器模式
php 设计模式 - 迭代器模式
适配器模式
讲得很生动的,很容易理解并掌握。希望大家喜欢
php 自动加载
详细介绍 php 的自动加载方法
统一热干面的制作流程---模板方法
前情提要 上集讲到, 小光引入了日报制度, 用来从各个分店店长那儿收集信息. 如此一来, 小光每天就通过日报系统了解到各个分店的销售情况, 问题所在, 也好根据收集到的用户反馈来改善系统, 改善经营了. 不多久, 就有一个来自用户的反馈, 通过店长的日报到了小光这边: 有用户反…
网友评论