没有使用工厂模式时的代码:
interface Fruit{
public void eat();
}
class Apple implements Fruit{
public void eat(){
System.out.println("**吃苹果**") ;
}
}
class Orange implements Fruit{
public void eat(){
System.out.println("**吃橘子**") ;
}
}
public class FactoryDemo01{
public static void main(String args[]){
Fruit f = new Apple();
f.eat();
}
}
/*
E:\java>javac FactoryDemo01.java
E:\java>java FactoryDemo01
**吃苹果**
*/
/*普通的代码编写方式*/
interface Fruit{
public void eat();
}
class Apple implements Fruit{
public void eat(){
System.out.println("**吃苹果**") ;
}
}
class Orange implements Fruit{
public void eat(){
System.out.println("**吃橘子**") ;
}
}
public class FactoryDemo01{
public static void main(String args[]){
Fruit f = new Apple();
f.eat();
}
}
/*
E:\java>javac FactoryDemo01.java
E:\java>java FactoryDemo01
**吃苹果**
*/
使用工厂模式的代码:
工厂设计模式:
在Java中主方法就类似于一个客户端,当子类发生变化时,就必须要在客户端里改变声明的对象和类。
这使得客户端和子类就紧密的耦合在一起,因此,如果在子类发生改变时,客户端也要发生相应的改变。
在程序中加入一个工厂,使得子类的声明在工厂内发生,然后再把声明后的对象返回到客户端中,
这样就避免了客户端与子类耦合的发生。
interface Fruit{
public void eat();
}
class Apple implements Fruit{
public void eat(){
System.out.println("**吃苹果**") ;
}
}
class Orange implements Fruit{
public void eat(){
System.out.println("**吃橘子**") ;
}
}
class Factory{
public static Fruit getFruit(String className){
Fruit f = null;
/*在这里使用【字符串常量的匿名对象.equals(className)】可以有效的避免出现空指向异常。*/
if ("Apple".equals(className)){
f = new Apple();
}
if ("Orange".equals(className)){
f = new Orange();
}
return f;
}
}
public class FactoryDemo02{
public static void main(String args[]){
/*直接使用工厂返回的对象。如果子类发生改变,就不再需要修改客户端。*/
Fruit f = Factory.getFruit(args[0]);
if (f!=null)
f.eat();
}
}
/*
E:\java>javac FactoryDemo02.java
E:\java>java FactoryDemo02 Apple
**吃苹果**
E:\java>java FactoryDemo02 Orange
**吃橘子**
*/
分享到:
相关推荐
设计模式专题之(三)抽象工厂模式---设计模式抽象工厂模式示例代码(python--c++)
设计模式源代码--工厂模式与单例。 代码是本人在学习设计模式时,所写的例子。 适合设计模式的初学者看。
设计模式专题之(二)工厂方法模式---设计模式工厂方法模式示例代码(python--c++)
设计模式-抽象工厂模式(讲解及其实现代码)
设计模式-工厂模式 学习练习的代码 1.简单工厂模式 2.方法工厂模式 3.抽象工厂模式 4.模拟Spring Bean工厂练习
java设计模式--工厂模式 HeadFirst 书中的源代码
创建型设计模式---工厂设计模式实现
《设计模式-工厂模式》中的工厂方法模式代码示例,非简单工厂代码示例,简单工厂代码示例在原文中已经写好。
java设计模式-创建者模式-简单工厂模式。详细的讲解了什么是抽象工厂模式及应用场景和应用场景的代码事例。及各工厂模式的区别。
java设计模式----抽象工厂模式,简单工厂模式代码 代码内部
上篇:软件设计模式例子代码 【例2.2】简单工厂方法模式-汽车保险 【例2.3】工厂方法模式-汽车保险 【例2.4】抽象工厂模式-房屋信息 【例2.5】生成器模式-房屋信息 【例2.6】单例模式-互联网连接 ...
设计模式-工厂方法 讲解及其源码
设计模式-简单工厂技术的原理解及其相关实现代码。
创建型设计模式----抽象工厂模式
设计模式专题之(一)单例模式---设计模式工厂方法模式示例代码(python--c++)
java设计模式-创建者模式-简单工厂模式。详细的讲解了什么是工厂方法模式及应用场景和应用场景的代码事例。及各工厂模式的区别。
java设计模式-创建者模式-简单工厂模式。详细的讲解了什么是简单工长模式及应用场景和应用场景的代码事例。
该文件是,设计模式中最常见的工厂模式的实现代码,其中有两个实例!
本系统使用Java代码实现,是设计模式的期末课程设计,共使用了5种设计模式,分别是**原型模式、单例模式、抽象工厂模式、代理模式、建造者模式。*,希望对各位有帮助
工厂方法模式,主要是利用反射机制获取配置文件的信息,用户可以在不知道如何生产对象的情况下获取对象。包括源代码和文档(文档在本博客的文档说明中)。