单实例设计模型,从字面上的理解就是,某个类只能创建一个类的对象,这样的话就避免了重复创建类的对象而产生了某些数据的变化带来的不确定性。就比如说在我们做线程小游戏时,当然这时会用到的数据有很多,如果我们不加以分类的话,必然会使不同数据分在不同的类中。这个时候我们如果需要在某个类当中需要调用另外一个类的某个对象或者数据时就得把这个类传过来才行。但是我们考虑到的是,如果我们的工程中类比较多时,而且需要传的值比较多时,这时我们的类的创建对象的过程就会变得很复杂。而且到最后我们可能会被自己的代码弄得晕头转向,这个问题我也在此前碰到过。所以,下面就简单的介绍单实例设计模型。
在这里我创建一个数据类Data:在这个类中,所有的数据都必须要通过类的get方法来得到。
public class Data {
//单实例设计模式
private static Data instance;
private int screenWidth=600;
private int screenHeight=500;
//构造器设为私有,在其他类中不能创建
private Data(){
}
public int getScreenWidth() {
return screenWidth;
}
public int getScreenHeight() {
return screenHeight;
}
//所有外部类通过该方法访问同一个实例
public static Data getInstance() {
//若instance为空,则创建一个新的Data的实例对象,否则返回已经创建好了的Data对象
if(instance == null){
instance = new Data();
}
return instance;
}
}
简单的总结来说就是单实例模型需要一个私有的构造器,里面个静态的方法来返回静态的Data对象,而在Data里面的属性、数据就要在类中实现get方法以便在其他类调用。这里我创建一个Frame。
public class UI {
JFrame jf = new JFrame();
//获取Data对象,然后通过data来获取窗体的宽度和高度
Data data = Data.getInstance();
public void init(){
jf.setSize(data.getScreenWidth(),data.getScreenHeight());
jf.setVisible(true);
}
}
说了这些,其实这个就是单实例模型最简单的应用。
其实除了这个方法,还可以用static关键字来实现。不过static关键字的方法跟上面有异曲同工之妙。只不过,后者更多的是方法的实现。而前者是数据的传递上的。
下面还将介绍一种简单的设计模型:
工厂设计模型。这个模型怎么说呢,跟上面的单实例设计模型有相似也有区别。这里创建Student和Teacher类均实现Person接口来说明。而在另外一个类Test当中我们能够用两个静态的方法来返回这两个类的实例。
public class Test{
public static Person getTeacher(){
return new Teacher();
}
public static Person getStudent() {
return new Student();
}
}
这是我们在主函数的类中就能够调用Test类的静态方法来获取Teacher和Student类的对象。简单的说明其实很简单的,重要的是我们在做游戏时能把他们运用起来的话,那么就会对我们的代码的可读性大大的提高。
分享到:
相关推荐
各种java设计模式版本打包下载,学习java必备材料
在Java编程语言中,模型设计是一项关键技能,它涉及到如何有效地组织和结构化代码,以实现高效、可维护和可扩展的应用程序。本教程聚焦于Java模型设计,提供了丰富的代码示例,帮助开发者深入理解这一主题。以下是...
新安江模型:三层蒸发模型、三水源划分产流
什么是领域(Domain)? 我们所做的软件系统的目的都是来解决一系列问题,例如做一个电商系统来在线销售自己企业的产品;做一个灰度发布平台来提升服务的质量和稳定性。任何一个系统都会属于某个特定的领域,例如: ...
Java内存模型(Java Memory Model,简称JMM)作为Java并发机制的核心,其设计理念直接影响到程序的性能与可靠性。本文将探讨Java内存模型从早期版本到JDK 5的重大变革,并重点介绍这一变迁背后的动机及其对Java开发...
Java语言的设计考虑到了现代多处理器和多线程环境的特点,因此在设计之初就将内存模型纳入了语言规范之中。Java平台自动集成了线程及多处理器技术的支持,这是许多其他编程语言所不具备的优势之一。然而,随着技术的...
### 解释结构模型算法的JAVA设计实现 #### 引言 解释结构模型(Interpretative Structural Modeling,简称ISM)是一种广泛应用于现代系统工程中的分析工具,尤其在处理复杂系统问题时展现出强大的分析能力。ISM的...
### Java设计模式与四大常用架构 #### 软件危机与设计模式的诞生 20世纪60年代的软件危机促使人们开始探索如何提高软件工程的质量和效率。最初,研究重点集中在数据结构和算法的选择上,但随着软件系统规模的不断...
Java3D加载3D模型的技术 Java3D是一种基于Java的三维图形编程接口,用于加载和显示三维模型文件。下面是Java3D加载3D模型的技术要点: 1. Java3D概述 Java3D是一种基于Java的三维图形编程接口,由Sun ...
Java内存模型是Java平台的核心概念之一,它定义了Java程序中各种变量的访问规则以及如何在运行时分配内存区域...通过上述分析,我们可以看到Java内存模型在程序设计中的重要性以及如何在实际应用中进行有效的内存管理。
总结来说,"java领域模型代码示例"提供了一个基于Java的、使用领域驱动设计的实践案例,有助于开发者理解和学习如何将业务逻辑转化为可维护的代码结构。通过分析和学习这样的示例,开发者可以提升在复杂业务场景下...
**基于Java技术的Web应用设计模型的比较研究** 在计算机科学领域,特别是Web开发中,Java技术占据着重要地位。本文主要探讨了基于Java技术的Web应用设计模型,包括Model 1、Model 2、Struts和JavaServer Faces (JSF...
根据给出的文件部分内容,本文将详细探讨关于基于Java技术的Web应用设计模型的比较研究,特别是涉及到的主要技术点和设计模式。从内容中可以识别出多个Java Web应用开发领域的重要概念和技术。 首先,文档提到了...
阿里巴巴专家讲座——java内存模型与并发技术。 主要内容: 学习java并发理论基础:Java Memory Model 学习java并发技术基础:理解同步是如何工作 分析程序什么时候需要同步 几个典型的并发设计策略
数据流Java并行程序设计模型的设计、实现及运行时优 数据流Java并行程序设计模型是指基于数据流多态语言特征设计的一种Java并行程序设计模型。该模型的设计思想源于传统工作中单个处理器的工作性能提升方法的不足。...
java课程设计的仓库,基于大模型的AI工具的设计与使用java课程设计的仓库,基于大模型的AI工具的设计与使用java课程设计的仓库,基于大模型的AI工具的设计与使用java课程设计的仓库,基于大模型的AI工具的设计与使用...
java毕业设计——基于java的动力节点系统的设计与实现(源码+数据库).zipjava毕业设计——基于java的动力节点系统的设计与实现(源码+数据库).zipjava毕业设计——基于java的动力节点系统的设计与实现(源码+数据库)....