有类型区分的工厂模式
Factory类
package com.model.factory;
public interface Factory {
int TYPE1 = 10000;
int TYPE2 = 20000;
int TYPE3 = 30000;
int TYPE4 = 40000;
int TYPE5 = 50000;
Product createProduct(Integer type);
}
package com.model.factory;
public interface Product {
}
package com.model.factory;
public class ConcreteFactory implements Factory {
@Override
public Product createProduct(Integer type) {
Product product=null;
switch (type) {
case TYPE1:
product=new WoodProduct();
break;
default:
product= new ConcreteProduct();
break;
}
return product;
}
}
package com.model.factory;
public class ConcreteProduct implements Product {
}
package com.model.factory;
public class WoodProduct implements Product {
}
测试类
package com.model.factory;
public class Client {
private Factory factory;
public Client(Factory factory) {
this.factory = factory;
}
public void doSomething() {
Product product = factory.createProduct(Factory.TYPE1);
// do someThing
}
public static void main(String[] args) {
Client client = new Client(new ConcreteFactory());
client.doSomething();
}
}
分享到:
相关推荐
2. **工厂模式**:定义一个创建对象的接口,但让子类决定实例化哪一个类。这使得程序可以引用抽象,而不是具体的类。在书中,工厂模式可能通过简单工厂、工厂方法和抽象工厂三种形式展现。 3. **建造者模式**:将...
1. 创建型模式:涉及对象实例化的设计模式,主要有单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式等。这些模式提供了更加灵活的方式来创建对象。 2. 结构型模式:描述如何组合类和对象以获得更大的...
1. 创建型设计模式:如单例模式(Singleton)、工厂方法模式(Factory Method)、抽象工厂模式(Abstract Factory)、建造者模式(Builder)和原型模式(Prototype)。这些模式关注对象的创建过程,旨在在不影响其他...
《漫谈设计模式:从面向对象开始(带书签)》设计模式相关书籍。
漫谈设计模式 网络数据 分为模式介绍,创建模式和行为模式几个章节
《漫谈设计模式》是一本专为Java开发者深入理解设计模式而编写的书籍。设计模式是软件工程中的一种最佳实践,它们是针对常见问题的解决方案,经过时间和实践的考验,被广泛接受并应用于各种项目中。这本书对于提升...
若想一本书涵盖所有模式,那么这本书将会非常庞大,以前的设计模式书籍专注于介绍设计模式,虽然读者了解了这些设计模式,但是仍然不知道如何合理地使用它们,往往导致读者为了使用设计模式而设计,而不是从问题出发...
《漫谈设计模式:从面向对象开始》主要从最基本的设计模式入手,并结合一些J2EE开发过程经常遇见的技术和概念,你将全面理解这10多个设计模式,并在开发过程中,让你真正体会和思考面向对象编程的思想,也只有掌握...
若想一本书涵盖所有模式,那么《漫谈设计模式:从面向对象开始》将会非常庞大,以前的设计模式书籍专注于介绍设计模式,虽然读者了解了这些设计模式,但是仍然不知道如何合理地使用它们,往往导致读者为了使用设计...
漫谈设计模式-从面向对象开始.刘济华.扫描版.带详细目录。
漫谈设计模式.pdf 编程珠玑(第二版).pdf 设计模式与java实践.pdf 设计模式精解.pdf 设计模式精解-GoF 23种设计模式解析附C++实现源码 .pdf 软件架构设计的思想与模式.pdf 重构与模式(Java).pdf