`
diyutaizi3721
  • 浏览: 4876 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
文章分类
社区版块
存档分类
最新评论

java 设计模型 之 策略模型与状态模型

    博客分类:
  • java
 
阅读更多
最近项目不是太忙,在看java设计模式.发现在有几个模式之间有点模糊
策略模型与状态模型
代理模型与策略模型

这三个模型在代码上好像没太大区别
策略模型与状态模型
之前看过一大神的文章 http://www.cnblogs.com/java-my-life/archive/2012/06/08/2538146.html  看不之后感觉不错...

总结出 "策略模型与状态模型" 根本区别 "状态模式"的行为是平行性的,不可相互替换的;而"策略模式"的行为是平等性的,是可以相互替换的


代理模型与策略模型
看到网上的 "代理模型" 差不多是这么写的(简单写写)

interface AInterface{
   methodA();
}

class BCls implements AInterface{
    methodA(){
        System.out.println("aaa");
   }
}

class CCls implements AInterface{
     methodA(){
        System.out.println("aaa");
   }
}

class ProxyCls{
   
     AInterface inter;
   
    public ProxyCls(AInterface inter){
          this.inter=iter;
    }
    
    public void show(){
    inter.methodA();
  } 
   
}

class ProxyTest{
   
    public static void main(String[] arg){
         
         ProxyCls proxyCls=new ProxyCls(new BCls());      
           
         proxyCls.show();
      }  
   
}


这样 "代理与策略"区别在那?  如果 把ProxyCls 改成 还可以认同

class ProxyCls{
   
     CCls inter;
    public void show(){
   if(inter==null){
    inter=new CCLS();
   }
    inter.methodA();
  }

class ProxyTest{
   
    public static void main(String[] arg){
         
         ProxyCls proxyCls=new ProxyCls();      
           
         proxyCls.show();
      }  
   
}
 
 





各位大神们有其他的理解没?小弟 求教
 
分享到:
评论

相关推荐

    Java 内存模型

    此外,随着现代处理器架构的不断发展,对内存模型的理解也可以帮助程序员更好地利用硬件的能力,比如理解缓存一致性协议、存储屏障指令等硬件特性是如何与Java内存模型相互影响的。 随着Java版本的演进,内存模型也...

    java 内存模型 java 内存模型

    java 内存模型 java 内存模型 java 内存模型 java 内存模型

    新安江模型java_Java_新安江模型

    新安江模型:三层蒸发模型、三水源划分产流

    JAVA模型设计(代码)

    本教程聚焦于Java模型设计,提供了丰富的代码示例,帮助开发者深入理解这一主题。以下是Java模型设计的一些核心概念和知识点: 1. **面向对象原则**:Java是一种面向对象的语言,模型设计的基础是面向对象原则,...

    ARMA模型与ARIMA模型java实现例程

    ARMA(自回归移动平均)模型与ARIMA(自回归整合移动平均)模型在时间序列分析中占有核心地位,尤其在预测和数据建模中应用广泛。这些模型可以帮助我们理解和预测那些具有趋势或周期性特征的数据序列。在这个Java...

    cpu 内存模型和java内存模型

    Java程序员了解CPU以及相关的内存模型,对于深入理解Java内存模型以及并发编程至关重要。CPU作为计算机硬件的核心,其架构和工作原理影响着软件的性能和执行效率。尤其在Java这种多线程、高并发的编程语言中,对CPU...

    深入理解Java内存模型 pdf 超清版

    Java内存模型,简称JMM(Java Memory Model),是Java编程语言规范的一部分,它定义了程序中各个线程如何访问和修改共享变量,以及如何确保数据的一致性。深入理解Java内存模型对于编写高效的并发程序至关重要。本文...

    大语言模型、讯飞星火大模型java 包

    结合标题和描述,我们可以推断出“讯飞星火大模型java包”是讯飞公司提供的一种Java库,包含了用于与星火大模型交互的API和工具。开发者可以通过导入这个Java包,利用Java语言在自己的应用程序中调用星火大模型的...

    深入理解Java内存模型

    综上所述,Java内存模型是一个复杂的系统,它涉及了线程间的通信与同步、共享变量的访问规则、重排序以及内存屏障等多个方面。为了编写出正确的多线程程序,深入理解Java内存模型是不可或缺的。Java内存模型的规则和...

    Java3d加载3D模型的技术

    Java3D加载3D模型的技术 Java3D是一种基于Java的三维图形编程接口,用于加载和显示三维模型文件。下面是Java3D加载3D模型的技术要点: 1. Java3D概述 Java3D是一种基于Java的三维图形编程接口,由Sun ...

    java课程设计的仓库,基于大模型的AI工具的设计与使用

    java课程设计的仓库,基于大模型的AI工具的设计与使用java课程设计的仓库,基于大模型的AI工具的设计与使用java课程设计的仓库,基于大模型的AI工具的设计与使用java课程设计的仓库,基于大模型的AI工具的设计与使用...

    Java内存模型的历史变迁

    Java内存模型(Java Memory Model,简称JMM)作为Java并发机制的核心,其设计理念直接影响到程序的性能与可靠性。本文将探讨Java内存模型从早期版本到JDK 5的重大变革,并重点介绍这一变迁背后的动机及其对Java开发...

    大气扩散模型JAVA代码

    大气扩散模型是环境科学与计算机科学的交叉领域,主要用于预测和模拟大气中污染物的扩散情况。在本案例中,我们关注的是一个使用JAVA语言实现的大气扩散模型。JAVA作为一种广泛使用的编程语言,具有跨平台性、面向...

    Java同步线程模型分析与改进

    ### Java同步线程模型分析与改进 #### 一、引言 随着软件系统变得越来越复杂,多线程编程成为提高程序性能和响应性的关键手段之一。Java作为一种广泛使用的编程语言,自诞生以来就内置了对多线程的支持。然而,...

    java内存模型与并发技术

    阿里巴巴专家讲座——java内存模型与并发技术。 主要内容: 学习java并发理论基础:Java Memory Model 学习java并发技术基础:理解同步是如何工作 分析程序什么时候需要同步 几个典型的并发设计策略

    (本科毕业设计)解释结构模型的Java实现

    总结来说,"(本科毕业设计)解释结构模型的Java实现"是一项综合运用面向对象编程、事件驱动编程、设计模式和用户界面设计的实践项目。通过这个项目,学生可以深入理解软件工程的多个方面,包括系统建模、代码组织、...

    在java中调用训练好的TensorFlow模型1

    在 Java 中调用训练好的 TensorFlow 模型 在本文中,我们将探讨如何将训练好的 TensorFlow 模型保存成 pb 格式的文档,并在 Java 项目中运用。首先,我们需要了解如何将模型保存成 pb 格式,然后我们将探讨如何在 ...

    Java领域模型驱动设计案例

    什么是领域(Domain)? 我们所做的软件系统的目的都是来解决一系列问题,例如做一个电商系统来在线销售自己企业的产品;做一个灰度发布平台来提升服务的质量和稳定性。任何一个系统都会属于某个特定的领域,例如: ...

    数据流Java并行程序设计模型的设计、实现及运行时优.pdf

    数据流Java并行程序设计模型的设计、实现及运行时优是为了解决传统Java模型的不足之处,通过建立在数据流多态语言特征基础之上的模型,实现虚拟机内部机制以及类库的基础之上,通过协同设计方案的方式,使得虚拟机...

    一个基于 Java 的 LLM(大语言模型)应用开发框架

    Java大语言模型应用开发框架是现代信息技术领域中的一个重要组成部分,特别是在人工智能和自然语言处理(NLP)的范畴内。这个框架的出现,使得开发者能够利用Java这一广泛使用的编程语言,更高效地构建和部署LLM(大...

Global site tag (gtag.js) - Google Analytics