`
Bruce.Wang
  • 浏览: 8438 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

设计模式之-命令模式(同时对工厂和多线程的思考)

阅读更多

  命令模式是对方法调用的封装,这样可以对调用者和接收者解耦。它遵循我们的一些什么设计原则呢?我认为:1.为交互对象送耦合设计。2.对接口和抽象编程而不对具体类。3.设计要可扩展而不是可修改。

命令模式本身比较简单,应该在我们平时的开发中都有用到。但是在我们一般的应用中,命令模式会和工厂模式,多线程应用,对象序列化等应用结合起来用到。

这里还是以一个消息处理系统为例来介绍,它和观察者不同的是,它是根据消息的类型来执行不同的动作,而观察者里是当消息状态改变是统一通知观察者。

我们这里以一个简单工厂来创建类。实际应用中可能会以配置文件和反射的机制创建。

 

在这里Message在命令模式中承担命令的接收者的角色,同时我们还要定义一个命令的发起者。这里有个MessageListener来接收消息,对消息类型判断然后调用消息。

 

 

对于多线程的应用,我们可以把所以的message设计成线程类。Concrete调用的是message的线程类方法。这样就可以支持并发操作和减轻系统资源。

 

分享到:
评论
2 楼 Bruce.Wang 2008-07-26  
我能看的到啊,呵呵。我的图是magicdraw导出的wmf格式的。我换一下。
1 楼 txxg 2008-07-26  
看不到楼主的图。。。两个叉

相关推荐

    GoF 23种设计模式解析附C++实现源码(2nd Edition)

    除了上述详细介绍的设计模式之外,本文档还提供了关于设计模式的一些思考和建议。学习设计模式的过程是漫长且富有挑战性的,但它对于提升个人的编程能力和设计水平具有重要意义。希望读者能够通过本文档的学习,对...

    设计模式笔记设计模式笔记

    设计模式笔记是对这些模式的深入理解和应用记录,可以帮助开发者在面对复杂系统设计时,快速找到合适的结构和策略。以下是关于设计模式的一些核心知识点: 1. **设计模式的分类**: - 创建型模式:如单例...

    java/J2ee的23种设计模式

    - 在多线程环境中需要特别注意同步问题。 2. **Factory Method(工厂方法模式)** - **定义**:定义一个用于创建对象的接口,但让子类决定实例化哪一个类。 - **应用场景**:创建对象时需要指定具体类型的情况。...

    设计模式(C++实现)

    设计模式是软件工程中的一种重要概念,它代表了在特定情境下解决问题的成熟、可复用的解决方案。...学习设计模式不仅能够提升个人技能,还能增强团队之间的沟通效率,因为设计模式提供了一套共同的语言和思考框架。

    java23种设计模式代码实例

    15. **命令模式(Command)**:将请求封装为一个对象,使得可以用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。 16. **解释器模式(Interpreter)**:给定一个语言,定义它的文法...

    面试题大全

    Java面试题涵盖了广泛的知识领域,包括但不限于基础知识、面向对象编程、数据结构与算法、集合框架、多线程、异常处理、IO流、网络编程、数据库操作、设计模式以及框架应用等。对于Java开发者来说,理解和掌握这些...

    DesignPatterns23_C++实现

    GoF的23种设计模式被广泛认为是面向对象编程的基石之一,涵盖了创建型、结构型和行为型三种类型。 #### 0.2 设计模式解析后记 设计模式的学习不仅是一种技术上的提升,更是一种思维方式的转变。从最初接触设计模式...

    蚂蚁金服面试分享.txt

    - **设计模式** - 单例模式:单例模式的实现方式及其应用场景。 - 工厂模式:工厂模式的设计思想及其优缺点。 - 观察者模式:观察者模式的应用场景及其优势。 - **项目实践经验** - 实际项目的案例分享:具体...

    3年java面试经验

    多线程环境下如何确保数据一致性是常见问题之一。 **缓存方案**:如Redis、Memcached等。了解缓存的工作原理、应用场景及如何处理缓存与数据库之间的数据一致性问题。 **分布式框架**:Dubbo/Spring Cloud。熟悉...

    designpatterns:设计模式

    以上设计模式均是基于面向对象的思考方式,它们在实际编程中扮演着至关重要的角色,帮助开发者解决复杂问题,提升软件质量。理解并熟练运用这些设计模式,是每个Java程序员进阶的必经之路。在`designpatterns-master...

    C++项目:基于C++语言实现的象棋源码分享给需要的同学

    - **设计模式**:合理使用设计模式可以使代码更加模块化,易于维护和扩展,例如使用工厂模式创建棋子对象,或者使用观察者模式处理游戏状态变化的监听。 - **多线程编程**:如果游戏支持多线程,如AI计算和图形渲染...

    JAVA面试题和面试技巧集合

    3. 多线程:理解线程的创建、同步和通信,如synchronized、wait()、notify()和notifyAll()方法。 4. Lambda表达式:使用函数式接口和Lambda简化代码,理解流API和函数式编程。 三、Java集合框架 1. 集合接口:List...

    从Java菜鸟到专家的资料

    8. **JAVA设计模式.chm**:设计模式是软件工程中的重要概念,这本书详细介绍了23种经典设计模式,如单例模式、工厂模式、观察者模式等,对提升代码质量和可维护性有极大帮助。 9. **Oracle optimizer.chm**:可能...

    IT互联网名企经典面试题汇总:Java篇 (2).docx

    22. **设计模式**:如工厂模式、观察者模式、装饰器模式等,是解决常见软件设计问题的模板。 23. **Spring注解**:如@Service、@Repository、@Controller等,简化配置,增强代码可读性。 24. **Redis键冲突**:可...

    java面试技术和技巧.zip

    6. **设计模式**:熟悉常见的设计模式,如单例、工厂、抽象工厂、建造者、原型、适配器、装饰器、代理、桥接、组合、享元、职责链、命令、解释器、迭代器、访问者、状态、策略、模板方法、观察者等,并能结合实际...

    传智播客扫地僧视频讲义源码

    本教程共分为5个部分,第一部分是C语言提高部分,第二部分为C++基础部分,第三部分为C++进阶部分,第四部分为C、C++及数据结构基础部分,第五部分为C_C++与设计模式基础,内容非常详细. 第一部分 C语言提高部分目录...

    coding_challenges

    15. **设计模式**:熟悉并应用常见的设计模式,如工厂模式、单例模式、装饰器模式等,以提高代码的可读性和可维护性。 在【coding_challenges-master】这个压缩包中,可能包含了各种编码挑战的源代码文件,每个文件...

    亮剑.NET深入体验与实战精要2

    13.4.4 设计模式、条件外置及反射技术的应用 471 13.5 面向对象分析(OOA)的方法 475 13.6 面向对象设计的原则 478 13.6.1 优先使用(对象)组合,而非(类)继承 478 13.6.2 针对接口编程,而非(接口的)实现 481...

Global site tag (gtag.js) - Google Analytics