// 产品接口
public interface Product {
public void getName();
}
// 具体产品A
public class ProductA implements Product {
public void getName() {
System.out.println(" I am ProductA ");
}
}
// 具体产品B
public class ProductB implements Product {
public void getName() {
System.out.println(" I am ProductB ");
}
}
// 工厂类
public class ProductCreator {
public Product createProduct(String type) {
if (" A ".equals(type)) {
return new ProductA();
}
if (" B ".equals(type)) {
return new ProductB();
} else
return null;
}
public static void main(String[] args) {
ProductCreator creator = new ProductCreator();
creator.createProduct(" A ").getName();
creator.createProduct(" B ").getName();
}
}
--------------------------------另一种设计模式-----------------------------------
// 产品接口 具体产品A 具体产品B 不变,仅仅改变工厂实现,就是一种新模式,小伙伴知道这是一种什么模式吗?
//工厂类
public class ProductCreator {
public void createProduct(Product p) {
p.getName();
System.out.println("------ProductCreator------p.getName");
}
}
public static void main(String[] args) {
ProductCreator creator = new ProductCreator();
creator.createProduct(new ProductA());
creator.createProduct(new ProductB());
}
相关推荐
UML文档-简单工厂模式 ...简单工厂模式和抽象工厂模式都是工厂模式的变种,它们都可以用来创建对象,但是它们的实现方式和应用场景不同。简单工厂模式适合创建单个产品,而抽象工厂模式适合创建多个产品族。
工厂方法模式是工厂模式的一个变种,它将产品对象的创建过程延迟到了子类。在工厂方法模式中,抽象工厂类定义了一个创建对象的接口,但不直接实例化对象,而是由其子类决定创建哪个类的对象。这样,每个子类都可以...
7. **扩展与变种**:可能还会涉及其他一些与工厂模式相关的模式,比如建造者模式,或者介绍如何结合其他模式(如策略模式、装饰器模式)来增强工厂模式的功能。 通过深入理解和实践工厂模式,开发者可以更好地组织...
然而,当产品类的数量变得庞大时,工厂类可能变得难以维护,此时可能需要考虑使用更复杂的工厂模式变种,如抽象工厂模式或者使用依赖注入框架。 总的来说,"简单工厂模式(计算器)"是一个很好的示例,用于展示如何...
简单工厂模式是软件开发中常用的一种创建型设计模式,它为客户端代码提供了...然而,对于大型复杂系统,可能需要考虑使用更复杂的工厂模式变种,如工厂方法模式或抽象工厂模式,以适应更多样化的需求和更灵活的扩展性。
工厂模式主要有两种变种:工厂方法模式(Factory Method Pattern)和抽象工厂模式(Abstract Factory Pattern)。 1. 工厂方法模式: 工厂方法模式是一种非常典型的创建型设计模式。它定义了一个创建对象的接口,但...
此外,简单工厂模式作为工厂方法模式的一个变种,它省去了抽象工厂,直接由一个类来创建对象。在Android的`Connection`类中,我们可以看到这样的应用。`getConnection`方法作为一个静态工厂方法,根据传入的参数决定...
本源码是HSMM的Python包,HSMM是HMM的一个变种,主要用于模式识别,机器学习等本源码是HSMM的Python包,HSMM是HMM的一个变种,主要用于模式识别,机器学习等本源码是HSMM的Python包,HSMM是HMM的一个变种,主要用于...
2. **工厂模式**:提供创建对象的接口,但不指定具体实现。分为简单工厂、工厂方法和抽象工厂三种类型。 3. **构造器模式**(Builder):将复杂对象的构建与其表示分离,使得相同的构建过程可以创建不同的表示。 4...
工厂方法让类的实例化推迟到子类中进行,这是抽象工厂模式的一个变种。 **模式结构** 1. **抽象产品(Product)**:定义了产品的接口,通常为一个接口或抽象类,具体的产品类需要实现这个接口或继承这个抽象类。 2. ...
Swift中的工厂模式可以通过协议和类型擦除实现,使得代码更加模块化和可扩展。 3. **建造者模式(Builder)**: 建造者模式将复杂对象的构建与其表示分离,使同一种构建过程可以创建不同的表示。在Swift中,可以...
2. **工厂模式**:工厂模式提供了一种创建对象的最佳方式,隐藏了对象创建的复杂性。在iOS开发中,可以用来创建视图控制器或者自定义控件,使得代码更加灵活且易于维护。 3. **代理模式**:代理模式允许一个对象...
代理微服务设计模式是聚合器模式的一个变种。在这种情况下,客户端并不聚合数据,但会根据业务需求的差别调用不同的微服务。代理可以仅仅委派请求,也可以进行数据转换工作。 链式微服务设计模式是一种常见的微服务...
工厂模式则提供了一种创建对象的最佳方式,而无需指定具体类,增加了代码的灵活性和可扩展性。 衍生模式可能包括了对这些经典模式的变体,例如懒汉式单例(延迟初始化)、双检锁单例(DCL,使用volatile关键字),...
简单工厂模式(也称为静态工厂方法)是工厂模式的一个变种,其目的是封装创建对象的过程。简单工厂模式由一个工厂对象决定创建出哪一种产品类的实例。该模式简化了客户端代码,使得客户端不必关心产品是如何被创建的...
使用工厂模式就象使用 new 一样频繁. 设计模式之 Builder 汽车由车轮 方向盘 发动机很多部件组成,同时,将这些部件组装成汽车也是一件复杂的工作,Builder 模式就是将这两 种情况分开进行。 设计模式之 ...
创建型模式主要关注对象的创建过程,如单例模式、工厂模式、抽象工厂模式等,它们帮助我们优雅地管理对象的实例化过程。结构型模式关注如何组合现有组件来形成更大的结构,如适配器模式、装饰器模式、代理模式等,...
例如,可能会引入抽象工厂模式,让建造者能够创建不同类型的子产品。此外,有时建造者会带有参数,允许用户在构建过程中指定某些特性。还有时,建造者模式会被用来实现链式构建,即每个构建方法都返回Builder自身,...