Java实现简单工厂模式

  昨天看了一下设计模式,复习了一下简单工厂模式,做个笔记,浅淡一下我对简单工厂模式的理解。书上使用的是C#,因为我所学的是Java,所以本人就用Java实现了一遍。如果有讲的不对的地方,希望能够指出来。简单工厂设计模式可以简单地理解为,你拿着一个空口袋去水果店买水果,你把空袋子给水果店老板,然后对老板讲我需要一袋子的柚子,十分钟以后。老板递给你一袋子柚子。你不需要知道他们是怎么区分柚子和橘子,又是怎么把柚子装进袋子的。你只需要知道你去了水果店,告诉他你需要一袋柚子。

  代码可以简单理解为,水果店,水果和柚子三部分。如果不谈用户交互界面的话,能和你直接接触的是水果店,下面这段代码可以理解为水果店,用来创造水果的。你可以告诉他你需要什么样的水果,他会返回你一袋水果。

public class FruitsFactory {

    public static Fruit createFruit(String name){
        Fruit fruit = null;
        switch(name){
        case "柚子":
            fruit = new Grapefruit();
            break;
        case "橘子":
            fruit = new Tangerine();
            break;
        }
        return fruit;
    }
}

下面这个类是一个抽象类,可以理解为水果的总称,水果店里面的所有的水果的混合。

public abstract class Fruit {
    protected double weight;
    public double getWeight() {
        return weight;
    }
    public void setWeight(double weight) {
        this.weight = weight;
    }
    public abstract void getResult();
}

下面就是具体的水果,抽象类的具体实现。

public class Grapefruit extends Fruit {

    private double price=5.5;
    @Override
    public void getResult() {
        System.out.println("一袋柚子的价钱是:"+(weight*price));
    }

}
public class Tangerine extends Fruit {

    private double price=3.5;

    public void getResult() {
        System.out.println("一袋橘子的价钱是:"+(weight*price));
    }
}

  简单工厂模式可以分为这样几部分,他最大的好处可以理解为,如果水果店里新进柠檬,你只需要新建一个柠檬类,然后在水果店的switch里面增加分支就够了,不用去修改其他代码。是不是感觉代码之间的关联度少了很多?这样才能更利于代码的后期维护。

原文地址:https://www.cnblogs.com/tudou1179006580/p/8228171.html

时间: 2024-10-15 07:27:12

Java实现简单工厂模式的相关文章

Java设计模式——简单工厂模式

1.    简单工厂模式 1.1 概述 又叫静态工厂方法模式,它定义一个具体的工厂类负责创建一些类的实例. 1.2 优点 客户端不需要在负责对象的创建,从而明确了各个类的职责. 1.3 缺点 这个静态工厂类负责所有对象的创建,如果有新的对象增加,或者某些对象的创建方式不同,就需要不断的修改工厂类,不利于后期的维护 2.     代码 Animal抽象类-Animal.java package cn.itcast_01; public abstract class Animal { public

设计模式(java)--简单工厂模式之女娲造人.水果农场

女娲抟土造人 话说:“天地开辟,未有人民,女娲抟土为人.”女娲需要用土造出一个个的人,但在女娲造出人之前,人的概念只存在于女娲的思想里面. 女娲造人,这就是简单工厂模式的应用.  首先,在这个造人的思想里面,有几个重要的角色:女娲本身.抽象的人的概念和女娲所造出的一个个具体的人.    1.)女娲是一个工厂类,也就是简单工厂模式的核心角色. 2.)具休的一个个的人,包括张三,李四等.这些人便是简单工厂模式里面的具体产品角色 3.)抽象的人是最早只存在于女娲的头脑里的一个想法,女娲按照这个想法造出

胡博君解Java中简单工厂模式

为什么要用简单工厂模式: 我们都知道程序是分开的,客户端中有程序,服务器端有程序,一般来说我们写的main方法中的程序都是在客户端电脑中的,按照我们学习的时候喜欢的写法: //一般来说这个程序都是在客户电脑中,俗称调用者 public  class  Text{ public static void main(String[] args) { Person  p  =  new  Person(); p.getInfo(); } } //一般这个程序都在服务器中,俗称被调用者,而且是可以修改的

JAVA 设计模式 简单工厂模式

用途 简单工厂模式 (Simple Factory) 又叫做静态工厂方法(Static Factory Method)模式.简单工厂模式通常是定义一个工厂类,这个类可以根据不同变量返回不同类的产品实例. 简单工厂模式是一种对象创建型模式 (可参考 设计模式 创建型模式). 但是简单工厂模式不属于23种Gof设计模式之一. 结构 如何实现一个具有加减乘除基本功能的计算器? 对于这四种运算来说,都需要两个操作数,差别仅在于返回的结果不同. 由此,我们可以抽象化它们的共性,提炼出一个父类.这个类中包含

Java设计模式 -- 简单工厂模式(SimpleFactory)

一.什么是简单工厂模式 简单工厂模式属于类的创建型模式,又叫做静态工厂方法模式.通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类. 二.模式中包含的角色及其职责 1.工厂(Creator)角色简单工厂模式的核心,它负责实现创建所有实例的内部逻辑.工厂类可以被外界直接调用,创建所需的产品对象.2.抽象(Product)角色简单工厂模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口.3.具体产品(Concrete Product)角色简单工厂模式所创建的具体实例

Java反射+简单工厂模式总结

除了 new 之外的创建对象的方法 通过 new 创建对象,会使得程序面向实现编程,先举个例子,某个果园里现在有两种水果,一种是苹果,一种是香蕉,有客户想采摘园子里的水果,要求用get()方法表示即可 一般情况下,最直接的写法为: public class Apple { public void get() { System.out.println("得到苹果"); } }   public class Banana { public void get() { System.out.p

Java 实现简单工厂模式

工厂模式 属于创建型模式 简单工厂模式 通过一个厂类,以一个条件来创建对应的对象 //业务功能 public interface ICalculation { double getResult(double numA, double numB); } public class CalcAdd implements ICalculation { @Override public double getResult(double numA, double numB) { System.out.pri

Java设计模式-简单工厂模式(Static Factory Method)

简单工厂模式(Static Factory Method) 简单工厂模式是类的创建模式,又叫静态工厂方法(Static Factory Method)模式.简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例.那么简单工厂模式应用在那些场景呢: 拿登录功能来说,假如应用系统需要支持多种登录方式如:口令认证,域认证(口令认证通常是去数据库中验证用户,而域认证则是需要到微软的域中去验证用户).那么自然的做法就是建立一个各种登录方式都适用的接口:如下图所示: package com.tutoria

java实现简单工厂模式,工厂模式

一个农场公司专门负责培育各种水果,在这个系统中的水果有葡萄,草莓和苹果,其类图如图所示. 请按以下要求编写程序: 1. 应用简单工厂方法模式,在主程序中根据键盘输入的水果名称来完成其生长状态的描述. 2  应用工厂方法模式,在主程序中根据键盘输入的水果名称来完成其生长状态的描述 //新建一个简单工厂类 SimpleFactory.java public class SimpleFactory{         //    此处需要定义 static 类型,在客户端 类名.方法调用     pub