-
如何用Java写一个简单的工厂模试,和单太~他们有什么区别,能详细说一下这两个有什么用吗5
如何用Java写一个简单的工厂模试,和单太~他们有什么区别,能详细说一下这两个有什么用吗,谢谢
问题补充:
希望大侠能把两个例子写出来,是单态~不是单大2008年6月23日 09:55
4个答案 按时间排序 按投票排序
-
你可能觉得有时候用factory来制造一个单态实例有些混淆。
factry.create() 这是体现工厂模式的方式, 你通过一个工厂得到对象而不是自己构建它
而具体create内部是返回的一个单态的实例的方式,这则是Singleton的方式
例如,返回一个静态变量,或是 spring实现等等
2008年6月25日 18:09
-
汗..很久没写过java代码了,写得乱七八糟的,居然出了这么多语法错误.不好意思啊
我再发一遍:
下面是工厂方式的实现方法://动物类接口 interface Animal{ //发出声音 public class sayHello(){}; } //生产动物的工厂类 class AnimalFactory{ public static Animal createDog(){ return (Animal)new Dog(); } } //狗实现动物接口 class Dog implements Animal{ //狗会汪汪叫 public class sayHello(){ System.out.println("汪汪"); } } //外国狗实现动物接口 class EnglishDog implements Animal{ //外国狗会Wolf!Wolf!叫 public class sayHello(){ System.out.println("Wolf!Wolf!"); } } //测试用 class Test(){ public static void main(String [] args){ //从工厂类里面获取一只狗 Animal animal1 = AnimalFactory.getDog(); animal1.sayHello(); } }
使用工厂模式时,当你在main方法中,想让你生成的那只狗说英文的话,就不用改main方法中的内容.只要在把AnimalFactory中的createDog()方法改为生成一个EnglishDog就可以了.前台的逻辑丝毫不会改变.
以下是单态的实现:
//打印机类
public class Priter{
//不允许买新打印机
private Priter(){};
//已经存在一台打印机
private static Priter priter=new Priter();
public static Priter getPriter(){
return priter;
}
//打印内容
public static print(String content){
System.out.println(content);
}
}
//测试类
class Test{
public static void main(String [] args){
Priter.getPriter().prite("测试用");
}
}
这样,当你使用打印机打印content的时候,永远都只会调用类加载时生成的那个priter打印机,而用不着每次打印时都要生成一个新的打印机对象.2008年6月24日 16:49
-
下面是工厂方式的实现方法:
//动物类接口 public interface Animal{ //发出声音 public class sayHello(){}; } //生产动物的工厂类 public class AnimalFactory{ public static Animal createDog(){ return (Animal)new Dog(); } } //狗实现动物接口 public class Dog implements Animal{ //狗会汪汪叫 public class sayHello(){ System.out.println("汪汪"); } } //外国狗实现动物接口 public class EnglishDog implements Animal{ //外国狗会Wolf!Wolf!叫 public class sayHello(){ System.out.println("Wolf!Wolf!"); } } public static void main(String [] args){ //从工厂类里面获取一只狗 Animal animal1 = AnimalFactory.getDog(); animal1.sayHello(); }
使用工厂模式时,当你在main方法中,想让你生成的那只狗说英文的话,就不用改main方法中的内容.只要在把AnimalFactory中的createDog()方法改为生成一个EnglishDog就可以了.前台的逻辑丝毫不会改变.
以下是单态的实现://打印机类 public class Priter{ //不允许买新打印机 private Priter(){}; //已经存在一台打印机 private static Priter priter=new Priter(); //打印内容 public static print(String content){ System.out.println(content); } }
这样,当你使用打印机打印content的时候,永远都只会调用类加载时生成的那个priter打印机,而用不着每次打印时都要生成一个新的打印机对象.
上面只是根据个人理解,直接在网页上所写的,如果有错误的话希望楼主多多包涵.2008年6月24日 11:26
-
简单点说:
1、工厂模式就是类的工厂,可以用来实例化不同的类。比如:写一个水果工厂,你可以实例化出苹果,也可以实例化出梨子、桃子……取决与你写的工厂能够生成多少产品。
用工厂来管理类比较方便。
相对工厂来说,当然你也可以通过苹果类来实例出苹果,梨子类来实例化出梨子……。
2、你说的“单太”指“单态”?Singleton,主要作用是保证在Java应用程序中,一个类Class只有一个实例存在,实际是一中单线程操作。同步,可以做到数据统一,节省内存等……
2008年6月23日 10:42
相关推荐
这两个文件很可能是Java程序,分别展示了如何使用RabbitMQ Java客户端库来实现消息的发送和接收功能。 发送端代码可能会包含以下关键步骤: 1. 创建ConnectionFactory,这是建立连接的工厂类。 2. 建立Connection,...
Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码...
"23种设计模试(java)"这个资源包含了Java语言实现的全部23个经典设计模式,下面将对这些模式进行详细介绍。 1. **创建型模式**(Creational Patterns): - **单例模式(Singleton)**:确保一个类只有一个实例,...
一个纯Java API编写的简单学生管理系统,旨在为初学者提供一个基础的实践平台,以理解和掌握Java编程的基本概念以及面向对象设计的原则。在这个系统中,我们可能会看到以下几个核心知识点: 1. **类与对象**:在...
Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java...
"设计模式之从简单工厂到泛型简单工厂"这个主题关注的是创建型设计模式,特别是如何逐步改进简单工厂模式以提高其灵活性和可扩展性。简单工厂模式是一种静态工厂方法,用于创建对象,而泛型简单工厂则是对其的一种...
Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java...
在这段时间里,他们通常会掌握以下几个关键的知识点: 1. **基础语法与核心概念**:掌握Java的基础语法,包括数据类型、运算符、流程控制语句等。理解面向对象编程(OOP)的概念,如封装、继承、多态,并能够设计和...
接着,创建两个具体工厂类,分别实现这个接口: ```java public class ConcreteFactory1 implements AbstractFactory { @Override public ProductA createProductA() { return new ProductA1(); } @Override ...
/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录 一个Java+ajax写的登录实例,附有JAVA源文件,JAVA新手朋友可以学习一下。 JAVA+JSP的...
/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录 一个Java+ajax写的登录实例,附有JAVA源文件,JAVA新手朋友可以学习一下。 JAVA+JSP的...
描述中的“数据库 数据集_使用java开发的一个简单数据库实现_优质项目分享”进一步确认了项目的核心内容,即用Java创建一个数据库系统,并且被标记为优质项目,这可能意味着它具有良好的代码结构、清晰的文档和实用...
这是因为JMM(Java内存模型)允许这些类型的读取操作被拆分为两个独立的操作来进行。 - 例如,假设一个线程正在更新一个`volatile long`变量,而另一个线程正在读取该变量。如果第一个线程还没有完成更新操作,第二...
/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录 一个Java+ajax写的登录实例,附有JAVA源文件,JAVA新手朋友可以学习一下。 JAVA+JSP的...
在IT行业中,Java和C语言是两种非常重要的编程语言,广泛应用于软件开发和系统级编程。对于想要从事这两种语言的开发或测试工作的人来说,掌握相关的笔面试知识点至关重要。本资料包包含了丰富的Java、C以及与开发和...
Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java...
Java面试是评估程序员技术能力的重要环节,而Java面试代码与编程题则是衡量候选人对语言掌握程度、解决问题能力和逻辑思维的关键标准。以下是一些基于Java面试的常见知识点,这些知识点不仅适用于面试,也是日常开发...
标题中的“基于Java的两个通用安全模块的设计与实现”表明这是一个关于Java编程的项目,重点关注的是安全性方面。在Java中,安全模块通常涉及到访问控制、数据加密、防止注入攻击、安全网络通信等核心领域。这个设计...
这两份题目,"阿里巴巴java笔试试题.doc"和"2010校园笔试.doc",可能包含了阿里巴巴在招聘过程中对Java程序员所需掌握的基础知识、编程能力、算法理解以及实际问题解决能力的考察。 首先,Java基础是必不可少的知识...