Factory(简单的工厂模式)

一句话总结:用一个方法来代替new关键字
解决什么问题:对象产生过多,或者经常有子类替换生成。
项目里面怎么用:对于经常生成的对象,或者父子类替换的对象。
模式结构:写一个对外声明的方法,方法里面使用new关键字代替。
框架里面使用:spring的核心就是工厂模式。

工厂方法模式:
有四个角色,抽象工厂模式,具体工厂模式,抽象产品模式,具体产品模式。不再是由一个工厂类去实例化具体的产品,而是由抽象工厂的子类去实例化产品

// 抽象产品角色
public interface Moveable {
    void run();
}
// 具体产品角色
public class Plane implements Moveable {
    @Override
    public void run() {
        System.out.println("plane....");
    }
}
//扫把public class Broom implements Moveable {
    @Override
    public void run() {
        System.out.println("broom.....");
    }
}
// 抽象工厂 交通工具
public abstract class VehicleFactory {
    abstract Moveable create();
}
// 具体工厂
public class PlaneFactory extends VehicleFactory {
    public Moveable create() {
        return new Plane();
    }
}
public class BroomFactory extends VehicleFactory {
    public Moveable create() {
        return new Broom();
    }
}
// 测试类
public class Test {
    public static void main(String[] args) {
        VehicleFactory factory = new BroomFactory();
        Moveable m = factory.create();
        m.run();
    }
}

原文地址:https://www.cnblogs.com/wanjun-top/p/12689862.html

时间: 2024-10-09 20:13:10

Factory(简单的工厂模式)的相关文章

简单的工厂模式

从今天开始 每天进步一点点.开始了解并学习设计模式,就从简单的工厂模式开始吧.... 简单工厂模式(Simple Factory):不利于产生系列产品 简单工厂模式又称静态工厂方法模式.重命名上就可以看出这个模式一定很简单.它存在的目的很简单:定义一个用于创建对象的接口. 在简单工厂模式中,一个工厂类处于对产品类实例化调用的中心位置上,它决定那一个产品类应当被实例化, 如同一个交通警察站在来往的车辆流中,决定放行那一个方向的车辆向那一个方向流动一样. 先来看看它的组成: 1) 工厂类角色:这是本

大话设计模式之简单的工厂模式

第一章:代码无错就是优-简单的工厂模式 先建立一个计算类Operation Operation.h文件 @interface Operation : NSObject @property(nonatomic,assign)double numberA; @property(nonatomic,assign)double numberB; @end Operation.m文件 @implementation Operation @end 然后分别创建他们的子类Add,Sub,Mul,Div Add

Abstract Factory(抽象工厂模式)

System.Data.Common.DbProviderFactory public abstract class DbProviderFactory { public virtual DbConnection CreateConnection() { return null; } public virtual DbCommand CreateCommand() { return null; } } System.Data.SqlClient.SqlClientFactory public s

抽象工厂模式(abstarct factory pattern)和工厂模式(factory pattern)的比较

抽象工厂模式和工厂模式从字面上来看就有必然的联系,他们都是创建型模式.总结来说,工厂模式(factory pattern)只是个小工厂,只提供一层接口的实现类的输出,而抽象工厂模式(abstract factory pattern)是工厂模式的进一步升级,可以上升到两层以上的工厂模式继承,是工厂的工厂.一计算机来说,工厂模式可以是不同型号显示器,CPU或者网卡的提供者,而抽象工厂模式是显示器工厂.CPU工厂和网卡工厂的工厂.可以通过抽象工厂来获得CPU工厂,进而获得某个型号的CPU.整个依赖关系

java简单的工厂模式

定义:专门定义一个类来创建其他类的实例,被创建的实例通常都具有共同的父类和接口.意图:提供一个类由它负责根据一定的条件创建某一及具体类的实例 //简单工厂,存在不符合开闭原则的地方,可以在参考抽象工厂/工厂方法 //输入苹果,就可以通过工厂直接调用采摘苹果,而不用new一个Apple public class factoryDemo { public static void main(String[] args) { // TODO Auto-generated method stu Facto

Factory Method (工厂模式)

什么是工厂设计模式 根据名字即可了解,工厂肯定是用来生产产品的,在我们的程序开发中,需要用到不同的类,对于熟悉SSH.SSM开发的可以知道,在初期学习的时候,总是有一个框架提供好的的factory供我们使用,利用它可以创建访问数据库的连接等操作. 定义: 利用template method设计模式创建我们想要的实例,就称之为factory method. 具体到面向对象 <framework>生成实例框架:可以理解为在我使用factoy method时这个是必须的,组成元素在这个包下 <

Factory Pattern(工厂模式)

Factory Pattern(C++实现) /*Product.h*/ #ifndef PRODUCT_H #define PRODUCT_H class Product { public: virtual ~Product()=0; protected: Product(); private: }; class ConcreteProduct:public Product { public: ~ConcreteProduct(); ConcreteProduct(); protected:

C#调用短信接口(通过简单的工厂模式整合多个短信平台)

using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Text; using System.Web; namespace DUANXIN { public class SendSmsFactory { public static SendSmsBase CreateFactory(string className) { S

【简单的工厂模式】一个简单的计算器

对于一个对设计模式一无所知的程序员来说,维护成本,无疑是一个致命的问题,所以从今开始,我要开始努力学习,设计模式,在这里,记录自己的学习成果 生产类 abstract class Oper 抽象类 class Add 加 class Sub 减 class Mul 乘 class Div 除 class Operate 计算 abstract class Oper { public $num1 = 0; public $num2 = 0; abstract public function get