`
labile
  • 浏览: 43159 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

模式小试

阅读更多

       我一直是个宗诚的OOP信徒,或者说,是OOP的极左完美主义者。半年前,有幸拜读GOF的《Design Pattern》(以下简称《GOF》),和《PSA》,有茅塞顿开之快。作为一个刚毕业不到一年的程序员,我接手的都是一个人就可以完成的小项目。但在每个项目中,我都借鉴了大师们的经验(模式)来建模。

       前段时间。终于有机会和一位老员工合作项目。项目中要用到一个分布式的事件响应服务。在事件的类型上,我和他达成了共识,但在事件的响应方面。我尝试着向他推销满足DEMO版需求的反应器/观察者模式。

       一开始,我在纸上画响应器注册、反应器处理事件的框图,向他解释这个模式的实现流程。沟通过程中,我发现气氛压得本来就表达能力已经有限的我越来越不能清晰地表达这个模式。我的思维越混乱,他越是追问我。后来我有点恼火了。幸好,这时他让我用示例代码来解释……终于,他懂明白了怎样应用我的反应器。

       总结一下,像《GOF》所讲的。模式除了他本身的功能外,还有一个十分重要却没有得到足够重视的功能:交流术语。的确,如果程序员都了解一些常用模式的话。我们的交流会事半功倍。



分享到:
评论

相关推荐

    java画图板小试

    6. **橡皮擦功能**:橡皮擦可以通过设置Graphics2D的混合模式(Composite)或者清除画布的一部分来实现。 7. **代码结构**:良好的代码组织对于理解和维护项目至关重要。可以将不同的功能(如颜色选择、绘图、橡皮...

    AndroidMvp小试

    "AndroidMvp小试"这个项目可能是对MVP模式在Android应用中的初步实践,虽然描述中提到"不是很规范",但仍然可以从中学习到一些基本概念和实现方法。 **MVP架构的核心组件:** 1. **Model(模型)**:模型层主要...

    spring cloud demo 小试牛刀

    这种模式使得服务的动态扩缩容、网络故障等情况对服务消费者透明,提高了系统的可扩展性和可用性。 【my-producer】 my-producer则表示服务生产者,即提供具体业务功能的服务。在微服务架构中,每个服务都应保持...

    XSL练习小试

    在"XSL练习小试"中,我们主要关注如何运用XSL来处理XML文档。 首先,`CodeCC.xml` 是一个XML文件,它可能包含了编程代码、项目配置或者其他结构化的数据。XML文件通过使用自定义的标签来组织数据,这种数据结构使得...

    MVC新手小试牛刀-泡泡堂

    【MVC设计模式详解】 MVC(Model-View-Controller)设计模式是软件工程中的一种架构模式,广泛应用于Web应用开发中,旨在提高代码的可维护性和可扩展性。在这个模式中,三个主要组件——模型(Model)、视图(View...

    lpc2124编程小试

    开发者可以设置定时器的工作模式,比如自由运行、捕获或比较模式,并通过中断来处理定时事件。 **三、12864 LCD显示** 12864是一种常见的液晶显示屏,具有128列和64行的点阵。在LPC2124中,通过I2C或SPI接口与...

    Flex流行MVC框架之Cairngorm小试牛刀

    在Flex的世界里,MVC(Model-View-Controller)架构模式是常用的设计模式之一,它有助于实现应用的模块化,提高代码的可维护性和可扩展性。Cairngorm就是一种在Flex中广泛采用的轻量级MVC框架。 Cairngorm由Adobe的...

    小试牛刀之繁易远程平台FlexManager点位搭建

    "小试牛刀之繁易远程平台FlexManager点位搭建" 本文将从三个方面详细介绍繁易远程平台FlexManager点位搭建的知识点:点位添加、数据类型选择和报警登记。 点位添加 点位添加是繁易远程平台FlexManager点位搭建的...

    ECMAScript-Edition5-小试

    - **严格模式**:ES5 引入了一种新的执行上下文——严格模式,这种模式下 JavaScript 的运行会受到更多限制,从而有助于避免一些常见的编程错误。例如,在严格模式下,变量必须先声明后使用,否则会抛出错误。 ####...

    小试牛到swoole实现简单聊天室功能

    本项目"小试牛刀:swoole实现简单聊天室功能"就是利用Swoole的能力,创建一个实时在线聊天平台。 首先,我们需要了解Swoole的基本架构。Swoole的核心组件包括Server、Client、EventLoop、Timer、Coroutine(协程)...

    Elixir下开发嵌入式系统开发小试身手.zip

    本项目“Elixir下开发嵌入式系统开发小试身手.zip”旨在引导开发者初步了解如何在Elixir环境下进行物联网(IoT)相关的嵌入式系统开发。下面我们将深入探讨Elixir语言与物联网开发的相关知识点。 1. **Elixir语言基础...

    springboot整合vue项目(小试牛刀)

    Spring Boot 整合 Vue 项目是当前前端开发的一种热门趋势,本文将详细介绍如何将 Spring Boot 与 Vue.js 项目整合,实现前后端分离的开发模式。 Spring Boot 项目的创建 首先,我们需要创建一个 Spring Boot 项目...

    CSS+DIV小试牛刀剖析解读

    CSS2.0提供了四种定位模式:static(默认值,遵循正常文档流)、relative(相对于其正常位置进行偏移)、absolute(相对于最近的非static定位的祖先元素进行定位)和fixed(相对于浏览器窗口定位,即使滚动页面,...

    cmd操作MongoDB数据库牛刀小试.pptx

    与传统的关系型数据库不同,MongoDB不需要预先定义模式,这使得它在处理结构不固定或快速变化的数据时特别有效。 在Windows环境下,我们可以通过命令行工具CMD来操作MongoDB数据库。首先,正确安装MongoDB后,需要...

    科技成果转化知识整合的模式研究

    2. 科技成果转化的阶段性特征:文章提出成果转化可以大致分为四个阶段:成果对接、试验(小试中试)、批量生产、商业化产业化。每一个阶段对知识的需求和形态都有其特定性。例如,对接阶段可能更依赖于外部知识的...

    JSP做的留言板,自己小试牛刀!

    6. **MVC设计模式**:尽管这个项目可能比较简单,但为了使代码更易于管理和扩展,开发者可能会采用Model-View-Controller(MVC)设计模式。模型负责数据处理,视图负责展示,控制器协调两者。 7. **Servlet和JSP的...

    STM32F103串口通信USART小试牛刀.rar

    我们需要将这些引脚配置为推挽输出(Push-Pull)或浮空输入(Floating Input)模式,并设置适当的上下拉电阻。`GPIO_InitTypeDef`结构体和`GPIO_Init()`函数用于此目的。 4. **USART开启**:最后,通过`USART_Cmd...

    小鹏汽车XPEV.US首次覆盖:小试新车,鹏程万里.rar

    【小鹏汽车XPEV.US】是中国新能源汽车市场的一颗璀璨新星,其在智能电动汽车领域的创新和技术实力备受瞩目。...而作为投资者或关注者,深入了解小鹏汽车的业务模式和技术优势,对于把握行业趋势和投资机会至关重要。

    CFC4N小试php正则表达式

    正则表达式,又称为规则表达式,是一种文本模式,包含普通字符和特殊字符,用于描述一个字符串的组成规则。它能够匹配一系列符合某个句法规则的字符串。在编程语言中,正则表达式经常用于字符串处理、文本搜索、文本...

Global site tag (gtag.js) - Google Analytics