1.简单工厂模式:我创建一个“上帝类”创造出所有的类。
2.工厂方法模式:将工厂类进行抽象,创建不是类型的工厂类。
3.抽象工厂模式:创建一个抽象的工厂父类,适合一系列产品的创建。
1.简单工厂模式
public interface Car {
public void run();
}
public class Bmw implements Car {
public void run() {
System.out.println("Bmw run()...");
}
}
public class Benz implements Car{
public void run() {
System.out.println("Benz run()...");
}
}
/**
* 简单工厂HelloWorld
*/
public class SimpleFactory {
public static Car createCar(String type) {
if ("bmw".equals(type)) {
return new Bmw();
} else {
return new Benz();
}
}
public static void main(String[] args) {
Car c = SimpleFactory.createCar("bmw");
c.run();
}
}
2.工厂方法模式
public interface Factory {
public Car create();
}
public class BmwFactory implements Factory{
public Car create() {
return new Bmw();
}
}
public class BenzFactory implements Factory {
public Car create() {
return new Benz();
}
}
public interface Car {
public void run();
}
public class Bmw implements Car{
public void run() {
System.out.println("Bmw run()...");
}
}
public class Benz implements Car {
public void run() {
System.out.println("Benz run()...");
}
}
public class Test {
public static void main(String[] args) {
Factory factory = new BenzFactory();//可以生产各种各样的奔驰。
Car c = factory.create();
c.run();
}
}
3.抽象工厂模式public abstract class AbstractFactory {
abstract Button createButton();
abstract Panel createPanel();
}
public class BlueSkinFactory extends AbstractFactory {
@Override
Button createButton() {
return new BlueButton();
}
@Override
Panel createPanel() {
return new BluePanel();
}
}
public class RedSkinFactory extends AbstractFactory{
@Override
Button createButton() {
return new RedButton();
}
@Override
Panel createPanel() {
return new RedPanel();
}
}
public interface Button {
public void createButton();
}
public interface Panel {
public void createPanel();
}
public class BlueButton implements Button{
public void createButton() {
System.out.println("create blue button");
}
}
public class BluePanel implements Panel{
public void createPanel() {
System.out.println("create Blue Panel");
}
}
public class RedButton implements Button{
public void createButton() {
System.out.println("create Red Button");
}
}
public class RedPanel implements Panel{
public void createPanel() {
System.out.println("create Red Panel");
}
}
public class Test {
public static void main(String[] args) {
AbstractFactory f = new RedSkinFactory();//只需要修改这句就可以实现换皮肤功能。如果写在配置文件中就更方便了。
Button b = f.createButton();
b.createButton();
Panel p = f.createPanel();
p.createPanel();
}
}
分享到:
相关推荐
java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式...
工厂模式是设计模式中的一种创建型模式,它的主要目的是为了隔离对象的创建过程,使得客户端代码无需关心具体对象的创建细节,只需通过一个统一的接口来获取所需的对象。 在Java编程语言中,工厂模式通常分为简单...
JAVA设计模式之工厂模式 JAVA设计模式之工厂模式是软件开发中一种常用的设计模式,它专门负责将大量有共同接口的类实例化。工厂模式可以动态决定将哪一个类实例化,不必事先知道每次要实例化哪一个类。 一、工厂...
本篇将深入探讨工厂模式在Java中的实现以及类设计图的应用。 首先,我们来看简单工厂模式。它是一种静态工厂,通常包含一个静态方法,用于根据输入参数返回所需类型的实例。简单工厂模式的优点在于易于使用,但缺点...
例题简单的阐述了Java工厂模式的概念,有利于读者更好地了解Java工厂模式
设计模式是软件开发中的一种最佳实践,用于解决常见的...总的来说,工厂模式是Java编程中常用的设计模式之一,尤其适用于需要根据条件创建不同对象的情况。理解并熟练应用工厂模式,能够提高代码的可维护性和可扩展性。
工厂模式是设计模式中的一种创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,当客户端请求创建一个对象时,它不直接创建对象,而是调用一个工厂类来创建。这样做的好处在于,客户端与具体创建的对象之间...
本篇文章将对标题与描述中提到的几个关键Java设计模式进行深入分析。 首先,让我们来看一下MVC模式,这是一种广为接受的架构模式,用于构建用户界面。在MVC模式中,Model层管理数据以及业务逻辑,View层负责将数据...
设计模式 工厂模式 java
"设计模式之java工厂模式"是关于如何优雅地创建对象的一种经典设计模式,它属于创建者模式类别。创建者模式主要关注对象的创建,而工厂模式则在其中扮演着重要角色,因为它提供了一种抽象的方式来创建对象,从而使...
在软件设计模式中,工厂模式是一种非常常用的行为型模式,它的主要目的是为了隔离对象的创建过程,使得客户端代码不直接创建对象,而是通过一个工厂类来负责对象的创建。这样可以使得系统更具可扩展性和可维护性。...
在软件设计模式中,工厂模式是一种非常基础且实用的创建型模式。它的主要目标是提供一个创建对象的接口,隔离了实例化过程,使得代码更加灵活,易于扩展。工厂模式通常分为三种:简单工厂模式、工厂方法模式和抽象...
以下是关于JAVA设计模式中提及的四种模式——工厂模式、代理模式、迭代器模式以及责任链模式的详细说明。 1. **工厂模式**:工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。在工厂模式中,当创建...
简单工厂模式是面向对象设计中的一种经典设计模式,它属于创建型模式,主要用来解决对象的创建问题。在Java编程中,简单工厂模式通过一个中心工厂类来负责创建相关的对象,而无需让客户端代码直接new具体的产品类。...
Java设计模式是面向对象编程领域中的重要概念,它是一套被广泛接受并实践的解决软件设计问题的经验总结。设计模式并非具体的代码或库,而是一种在特定情境下为了解决常见问题而制定的通用解决方案的描述。它们描述了...
"设计模式单例模式和工厂模式综合应用"的主题聚焦于两种常用的设计模式:单例模式和工厂模式,并探讨它们如何协同工作来实现高效、灵活的代码结构。这个主题尤其适用于Java编程语言,因为Java的面向对象特性使得设计...
Java 经典设计模式讲解以及项目实战 设计模式简介:主要介绍各种设计模式的概念和运用场景等 设计模式综合运用:主要是笔者在实际工作中运用到的一些设计模式综合运用事例的提炼 Spring设计模式简介:主要是讲述...
工厂模式是设计模式中的一种,属于创建型模式,它的主要目标是提供一个创建对象的接口,但让子类决定实例化哪一个类。这样,工厂模式使代码能够独立于实际的产品类型进行工作。 工厂模式的核心思想是通过一个共同的...
《Java设计模式》课程设计报告主要探讨了如何利用Java编程语言和MyEclipse集成开发环境来实现基于设计模式的西瓜市场系统。这个项目涵盖了四种重要的设计模式:单例模式、代理模式、建造者模式和抽象工厂模式,为...