public class IDCardFactory extends Factory {
private Vector owners = new Vector();
protected Product createProduct(String owner) {
return new IDCard(owner);
}
protected void registerProduct(Product product) {
owners.add(((IDCard)product).getOwner());
}
public Vector getOwners() {
return owners;
}
}
public class IDCard extends Product {
private String owner;
IDCard(String owner) {
System.out.println(owner + "");
this.owner = owner;
}
public void use() {
System.out.println(owner + " use ");
}
public String getOwner() {
return owner;
}
}
public abstract class Product {
public abstract void use();
}
public abstract class Factory {
public final Product create(String owner) {
Product p = createProduct(owner);
registerProduct(p);
return p;
}
protected abstract Product createProduct(String owner);
protected abstract void registerProduct(Product product);
public abstract Vector getOwners();
}
public class Main {
public static void main(String[] args) {
Factory factory = new IDCardFactory();
Product card1 = factory.create("1");
Product card2 = factory.create("2");
Product card3 = factory.create("3");
System.out.println("card:"+factory.getOwners());
card1.use();
card2.use();
card3.use();
}
}
分享到:
相关推荐
它们都是由不同的厂家生产的,这就是工厂方法模式(FactoryMethod)与前面所说的简单工厂模式(SimpleFactory)的差别。 实例: 多文档系统。我已经用C#的源码编程了:请下载Factory Method Patter.rar
工厂方法模式【FACTORY METHOD PATTERN】 抽象工厂模式【ABSTRACT FACTORY PATTERN】 门面模式【FACADE PATTERN】 适配器模式【ADAPTER PATTERN】 模板方法模式【TEMPLATE METHOD PATTERN】 建造...
**工厂方法模式【Factory Method Pattern】** 提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。工厂方法模式允许子类决定实例化哪一个类,从而支持扩展而无需修改现有代码。 ##### 6. **...
5. 工厂方法模式【FACTORYMETHODPATTERN】:定义一个创建对象的接口,但让实现这个接口的子类决定实例化哪一个类。 6. 抽象工厂模式【ABSTRACTFACTORYPATTERN】:提供一个接口用于创建相关或依赖对象的家族,而不...
学习Java中的工厂方法模式,探索示例、用途、好处以及它如何增强代码的灵活性和可维护性。 **二、别名** * Virtual Constructor **三、Factory Method设计模式的意图** 使用工厂方法模式定义一个用于创建对象的...
简单工厂模式实际上不属于23个GoF模式,但它可以作为GoF的工厂方法模式(Factory Method)的一个引导。 UML: <<Interface>> ConcreteProduct Creator Product ------------- interface() ...
#### 工厂方法模式【FACTORY METHOD PATTERN】 工厂方法模式定义了一个用于创建对象的接口,但让子类决定实例化哪一个类。 **应用场景:** 例如,在图形界面程序中,不同的操作系统可能需要不同的窗口类。 **示例...
3. 工厂方法模式(Factory Method Pattern):工厂方法模式将产品的实例化委托给子类,抽象工厂类定义了创建产品的方法,但不具体实现,而是由具体的子类去实现,这样可以适应更多的产品类型。 4. 原型模式...
4. 工厂方法模式(Factory Method):定义一个用于创建对象的接口,让子类决定实例化哪一个类。 5. 原型模式(Prototype):使用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。 结构型设计模式 ...
3. Creator:这是一个抽象类,声明了工厂方法(FactoryMethod),这个方法返回一个Product类型的对象。Creator类可以根据需要定义一些默认的实现,但工厂方法通常会在子类中被重写。 4. ConcreteCreator:这是...
18. 模板方法模式(Template Method Pattern):在父类中定义算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 19. 访问者模式(Visitor Pattern):在不...
工厂方法模式(Factory Method Pattern)是一种创建型设计模式,它定义了一个创建对象的接口,但让实现这个接口的子类来决定实例化哪一个类。工厂方法把实例化的工作推迟到了子类。 从给出的内容中,我们可以看到,...