工厂模式,单例模式案例实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件设计与体系结构
实验报告
实验名称:工厂模式,单例模式模式案例
实验目的:工厂单例模式(Observer Pattern)是设计模式中行为模式的一种,它解决了上述具有一对多依赖关系的对象的重用问题。此模式的参与者分为两大类,一类是被观察的目标,另一类是观察该目标的观察者们。正因为该模式是基于“一对多”的关系,所以该模式一般是应用于由一个目标对象和N个观察者对象组成(当然也可以扩展为有多个目标对象,但我们现在只讨论前者)的场合。当目标对象的状态发生改变或做出某种行为时,正在观察该目标对象的观察者们将自动地、连锁地作出相应的响应行为。
通过本次实验了解观察者模式的原理。并能够运用观察者模式来进行编程。
实验内容
1 UML类图
工厂模式——手机工厂
Mobile MobileFacto
ry
Nokia Motorola MotorolaFatory NokiaFactory 工厂模式——电脑产品
单例模式:
2 程序的源代码
工厂模式——手机工厂
public interface Mobile{
public void call();
}
public interface MobileFactory{
public Mobile produceMobile();
}
public class Motorola implements Mobile{
public void call(){
System.out.println("摩托罗拉手机");
}
}
public class Nokia implements Mobile{
public void call(){
System.out.println("诺基亚手机");
}
}
public class MotorolaFactory implements MobileFactory{ public Mobile produceMobile(){
System.out.print("摩托罗拉工厂制造了");
return new Motorola();
}
package Singleton;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
MazeFactory factory=MazeFactory.instance("Singleton.AgentMazeFactory");
factory = MazeFactory.instance("Singleton.EnchantedMazeFactory");
}
}
3实验截图
工厂模式——手机工厂
工厂模式——电脑产品
单例模式:
对该模式的认识
经过本次工厂模式和单例模式的实验,通过自己动手编代码,是自己理解工厂单例模式机制,并且知道工厂模式有适用性在下列情况下使用工厂方法模式:1.一个类不能预期它必须创建的对象的类2.一个类希望由其子类来指定它创建的对象优点 1.通过消除应用特定的类的实例化,代码变得更灵活、更可复用2.代码只处理Product类的接口,能与任何支持该接口的ConcreteProduct类一起工作缺陷1.客户端可能只因实例化一个特定的ConcreteProduct而生成Creator 类的子类。单例模式的适用性当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时。当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。优点对惟一实例的受控访问允许可变的实例数量。缺点一、开销二、可能的开发混淆三、对象生存期。经过本次实验课的练习,我明白了编代码也是一种技巧,而设计模式便是大家提炼出来的有技巧编代码。使我对软件设计与体系结构这门课有了浓厚的兴趣,相信在学习这门课的知识,会让我获益良多。
扣分原因(有扣分时填写)扣分