`
Bruce.Wang
  • 浏览: 8400 次
  • 性别: 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...

    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...

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

    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