`
GLC
  • 浏览: 113397 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

设计模式5

 
阅读更多

  命令模式
  命令模式是对命令的封装,命令模式把发出命令的责任和执行命令的责任分隔开、委派给不同的对象。
  命令模式允许请求的一方和接收的一方独立开来、使得请求的一方无需接收请求的一方的接口。
  每一个命令都是一个操作、命令类中通常只会有一个方法,请求的一方发出请求要求执行一个操作、接收的一方收到请求并执行操作;两者分开互不影响。
  //先定义一个类、类中有两个方法。这个类负责接收命令的请求。
  Public class Receiver{
  Public void startup(){
  //启动
  }
  Public void close(){
  //关闭
  }
  
  }
  再定义一个命令接口:
  Public interface Command{
  Public void actionPerformed();
  }
  然后实现此接口
  Public class StartupCommand implements Commend{
  Receiver rece;
  Public StartupCommand(Receiver rece){
  This.rece= rece;
  }
  Public void actionPerformed(){
  Rece.startup();
  }
  }
  startupCommand调用了Receiver类中的startup方法、把具体的请求交给了Receiver类中的startup方法处理
  ShutdownCommand类也同样实现了Command接口、代表一个具体的关闭请求。
  Public class ShutDownCommand implements Command{
  Receiver rece;
  Public shutdownCommand(Receiver rece){
  This.rece = rece;
  }
  Public void actionPerformend(){
  Rece.close();
  }
  }
  最后客户端调用代码:
  Public class Client{
  Public  void  test(){
  Receiver rece = new Receiver();
  Command cmd = new StartupCommand(rece);
  Cmd.actionPerformed();
  }
  
  }
  
  观察者模式
  我们在生活中会发生这样的情况、当商品信息发生变化时,需要通知每一个客户;而这种通知是自动发生的、就好像客户始终在监听产品一样,这就需要在产品中添加观察者这样的角色;以便客户端的产品发生变化、观察者能自动观察到这种变化;并能及时的进行update和notify动作,这就是观察者模式
  Java的API中提供了两个类,Observable 提供公开的方法支持观察者对象;另一是Observer
  被观察者类product、里面定义两个属性;
  Public class product extends Observable{
  String name;
  String price;
  Public String getName(){
  Return name;
  }
  Public void setName(String name){
  This.name= name;
  this.setChanged();
  //通知观察者对象
  this.notifyObservers();
  
  }
  Public String getPrice(){
  Return price;
  }
  Public void setPrice(String price){
  This.price = price;
  this.setChanged();
  //通知观察者
  this.notifyObservers(price);
  }
  
  }
在product类中、当发生对name属性和price属性的改变时、使用了Observable中的方法setChanger()、用来在被观察者内部设置一个修饰标记;使用notifyObservers()方法向观察者通知这一变化。
接着、我们定义两个观察者类,分别为productNameObserver和ProductPriceObserver;这两个类都实现了Observer接口。这个接口中只定义了一个update()方法、当被观察者对象的对象发生变化时,被观察者对象的notifyObservers()方法会自动调用这一方法。
  Public class productNameObserver implements Observer{
  Public void update(Observer obsv,Object obj){
  //修改产品
  }
  }
  Public class productpriceObserver implements Observer{
  Public void update(Observer obsv,Object obj){
  //修改价格
  }
  }
  最后调用:
  Public  class Client{
  Public void test(){
  Product product =new Product();
  product.addObserver(new ProductNameObserver());
  product.addObserver(new ProductprictObserver());
  product.setName(“名字要发生改变”);
  product.setPrict(“价格要变”);
  }
  }
  
  

1
0
分享到:
评论

相关推荐

    24种设计模式以及混合设计模式

    设计模式是软件工程中的一种重要思想,它是在特定情境下,为解决常见问题而形成的一套最佳实践。在本文中,我们将深入探讨24种设计模式,并结合混合设计模式的概念,以及它们在实际项目中的应用案例。 首先,设计...

    人人都懂设计模式 人人都懂设计模式

    人人都懂设计模式 设计模式是软件开发中的一种解决方案,它提供了一种通用的设计思想和方法论,可以帮助开发者更好地设计和实现软件系统。设计模式可以分为三大类:创建型模式、结构型模式和行为型模式。 在本书中...

    GOF设计模式中英文+设计模式精解中英文

    GOF(Gang of Four)设计模式,由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides四位专家在他们的著作《设计模式:可复用面向对象软件的基础》中提出,被誉为设计模式的经典之作。本资源包含了GOF设计...

    设计模式(包含5个设计模式)含源代码报告.rar

    这个压缩包文件"设计模式(包含5个设计模式)含源代码报告.rar"显然是一份宝贵的资源,它涵盖了五个核心的设计模式,并附带了详细的类图、源代码以及文档报告,这对于学习和理解设计模式至关重要。 首先,我们要探讨...

    设计模式解析.pdf

    ### 设计模式解析:深入理解软件设计的核心原则与实践 #### 标题解析:设计模式解析 设计模式是软件工程领域的重要概念,旨在提供解决常见软件设计问题的模板或指导原则。《设计模式解析》这一标题暗示了书籍将...

    大话设计模式-完整设计模式介绍

    大话设计模式 完整设计模式介绍

    Head First 设计模式 +Java设计模式(第2版)

    《Head First 设计模式》与《Java设计模式(第2版)》是两本非常重要的IT书籍,专注于软件开发中的设计模式。设计模式是解决软件设计中常见问题的经验总结,它们提供了一种标准的方法来处理特定场景下的问题,使得代码...

    head first 设计模式5-2

    head first 设计模式

    Java 经典设计模式讲解以及项目实战

    Java 经典设计模式讲解以及项目实战 设计模式简介:主要介绍各种设计模式的概念和运用场景等 设计模式综合运用:主要是笔者在实际工作中运用到的一些设计模式综合运用事例的提炼 Spring设计模式简介:主要是讲述...

    23种设计模式详解PDF

    设计模式 的分类 总体来说设计模式分为三大类: 创建型模式(5): 工厂方法模式 、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式(7): 适配器模式、装饰器模式、代理模式、外观模式、桥接模式、...

    设计模式之《大话设计模式》.pptx

    设计模式之《大话设计模式》.pptx

    设计模式之蝉

    在计算机科学领域,设计模式是软件工程中用于解决特定问题的一般性方案,它们是经过实践检验的最佳实践。这些模式被广泛应用于面向对象软件设计中,能够提高代码的可重用性、灵活性和可维护性。设计模式通常被划分为...

    python设计模式第2版.pdf

    设计模式是构建大型软件系统zui强大的方法之一,优化软件架构和设计已经逐渐成为软件开发和维护过程中的一个重要课题。 Python设计模式(第2版)通过11章内容,全面揭示有关设计模式的内容,并结合Python语言进行示例...

    软件设计模式大作业

    软件设计模式大作业 本资源为一份完整的软件设计模式大作业,涵盖了六种设计模式的应用,分别是简单工厂模式、工厂方法模式、单例模式、门面模式、策略模式和观察者模式。该大作业的主要内容包括系统流程、系统类图...

    新版设计模式手册 - C#设计模式(第二版)

    《新版设计模式手册 - C#设计模式(第二版)》是一部深入探讨C#编程中设计模式的权威指南,尤其适合已经有一定C#基础并希望提升软件设计能力的开发者阅读。设计模式是解决软件开发中常见问题的经验总结,是软件工程的...

    设计模式练习题

    有关设计模式的练习题。设计模式的分类。等相关的联系。学西设计模式必选习题。有助于加强对于设计模式的理解。

    Head First设计模式.pdf

    全书用两章篇幅对设计模式和GRASP作了基本介绍,3种设计模式的讲解:对于每一种模式,先给出定义,接着通过类比方式用一个现实世界中的例子说明模式的应用,然后分别以C#和Java代码例述模式的架构实现。最后一章给出...

    尚硅谷设计模式源码笔记课件.zip

    本课程针对上述问题,有针对性的进行了升级 (1) 授课方式采用 图解+框架源码分析的方式,让课程生动有趣好理解 (2) 系统全面的讲解了设计模式,包括 设计模式七大原则、UML类图-类的六大关系、23种设计模式及其分类,...

    设计模式课件大全

    设计模式02 设计模式03-创建型模式 设计模式04-创建型模式2 设计模式05-建造者、原型模式 设计模式06-适配器、桥接、组合模式 设计模式07-组合模式、装饰模式 设计模式09-外观模式、享元模式 设计模式10-代理模式、...

    设计模式那点事

    设计模式是软件工程中的一种重要概念,它代表了在特定情境下解决问题的可重用解决方案。《设计模式那点事》这本书的PPT为我们提供了一种深入理解和学习设计模式的途径。在这里,我们将深入探讨设计模式的核心概念、...

Global site tag (gtag.js) - Google Analytics