【2016-10-17】【坚持学习】【Day8】【简单工厂模式】

今天学习简单工厂模式,

结构

一个抽象产品

多个具体产品

一个工厂类,通过传入参数,new出不同的产品

代码:

abstract class Product
{
     //所有产品类的公共业务方法
public void MethodSame()
{
    //公共方法的实现
}

//声明抽象业务方法
public abstract void MethodDiff();
}
class ConcreteProductA : Product
{
    //实现业务方法
    public override void MethodDiff()
    {
        //业务方法的实现
    }
}
class Factory
{
    //静态工厂方法
    public static Product GetProduct(string arg)
    {
        Product product = null;
        if (arg.Equals("A"))
        {
            product = new ConcreteProductA();
            //初始化设置product
        }
        else if (arg.Equals("B"))
        {
            product = new ConcreteProductB();
            //初始化设置product
        }
        return product;
    }
}
class Program
{
    static void Main(string[] args)
    {
        Product product;
        product = Factory.GetProduct("A"); //通过工厂类创建产品对象
        product.MethodSame();
        product.MethodDiff();
    }
}
时间: 2024-08-05 06:19:24

【2016-10-17】【坚持学习】【Day8】【简单工厂模式】的相关文章

Java研究之学习设计模式-简单工厂模式详解

 简介: 从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一.简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例. 类图: 从UML类图中,可以看出,简单工厂模式的意思,就是把一个类内部,需要生成的部分,提取出来,变为一个工厂,通过工厂来new对象. 假设我们要吃苹果了,我们可以在代码中new一个苹果出来:当我们需要吃香蕉了,我们在代码中new一个香蕉出来.这种做法你会不会觉得麻烦

设计模式学习(二)-简单工厂模式

---恢复内容开始--- 简单工厂设计模式 简单工厂模式定义: 简单工厂设计模式又称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式.在简单工厂模式中,可以根据参数的不同返回不同类的实例.简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类. 简单工厂主要分为如下几个角色 抽象产品(abstract product):为所有具体产品的抽象表现,一般为抽象类 具体产品(product):为抽象产品的具体实现 生成产品工厂(facto

[大话设计模式]学习笔记——简单工厂模式

序 说好的每天进步一点点的,结果工作太忙,一直在加班,都没有学习新东西.我还要进BAT呢. 坚持每天学习新东西. 写代码时,意识到在代码结构上还是有点欠缺.赶紧补上. 纪录对设计模式的认识.小菜变大鸟.进攻BAT. 应用场景: 编写一个计算器控制台程序,要求输入两个数和运算符号,得到结果. 这本书使用C#写的.已有博主用JAVA写出来,参考:http://blog.csdn.net/ghsau/article/details/8163418 常见的做法: 写一个方法封装计算机的功能,我们只需传参

编程学习之简单工厂模式与策略模式

很久之前在学习c++的时候就听到老师说写代码要考虑重构,架构,在此期间学习到了一种简单工厂模式. 何为简单工厂模式呢?简单工厂模式又叫静态工厂方法模式(Static FactoryMethod Pattern),是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类. 举个栗子,我们可能会遇到这类问题,假如需要一个软件,它可以计算各种图形的面积,使用简单工厂模式来构架的话就是通过创建一个工厂类,而程序运行过程中这些实例化这些具体的计算面积的算法类,然后主程序通过调用这些实例

Java设计模式学习记录-简单工厂模式、工厂方法模式

前言 之前介绍了设计模式的原则和分类等概述.今天开启设计模式的学习,首先要介绍的就是工厂模式,在介绍工厂模式前会先介绍一下简单工厂模式,这样由浅入深来介绍. 简单工厂模式 做法:创建一个工厂(方法或类)用来制造对象. 当一个人想要用手机的时候,需要自己创建手机然后来使用. 如下: public class IphoneX { public IphoneX(){ System.out.println("##### 制造iphoneX #####"); } } public class I

设计模式学习一简单工厂模式

简单工厂模式 第一步, 创建父类A(抽象类),抽象方法,以及具体变量 第二步, 创建工厂类父类B,用于实现创建抽象类A 第三步, 创建要子类C,继承父类A,重载父类方法,写方法具体实现,以及变量具体赋值. 第四步, 创建工厂类D,继承工厂类父类B,用来创建具体实现的 子类C (相当于AC  是工厂里面的模板) (BD 是工厂里面生产的产品) 简单工厂模式,备忘

模式设计学习 之 简单工厂模式

有幸看到园友推荐的 <大话设计模式>十分感谢,准备练习一下,以免忘记. 设计模式 需要灵活运用,不能为了 设计而设计,这样就得不偿失了. 简单工厂模式 又叫做 静态方法 模式 ,不在 23 种 设计模式之内 .是项目中最简单实用的 模式.它避免了大量的 代码 写在 一起 造成的 项目混乱,实现了简单的分层. 可以使用户只关心 使用 ,传入参数 调用方法. 缺点 是 大量的 业务 逻辑 处理 写在同一个 工厂 内, 当 需求发生 变动时,需要去修改工厂内的方法,这样违反了开放封闭原则. 写个例子

设计模式学习笔记--简单工厂模式

背景: 在开发过程中,经常会创建大量的对象,创建对象后还会涉及到一系列的初始化操作,而我们也不一定会只是在创建对象之后马上就使用对象,而且如果初始化操作很复杂,代码看起来就会非常杂乱,如果有变动,所有的初始化操作都要进行修改,相当难以维护. 功能: 将对象的创建和使用分离开来,专门用于创建对象并初始化.并且进行扩展后,可以根据参数不同,创建不同的对象. 例子: // 设计模式Demo.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #includ

设计模式学习之简单工厂模式

简单工厂模式,其实就是有一个静态的工厂方法,可以根据输出的条件返回对应的实例,然后再条用具体的实例的方法执行计算. 简单工厂模式相当与将条件判断都集中到了一个静态的工厂方法中.这样的好处是,执行具体计算任务的代码不需要再有很多的if判断,只专注于具体的计算.如果有新的计算需求,那么只需要增加相应的计算方法,并且在工厂方法中添加对应的入口条件就行了,对原有的计算方法没有任何影响. 一个简单计算器的实现例子如下 计算的类型接口: /** * @author wgyang * Create time:

《JS设计模式笔记》 2,简单工厂模式

1 <script type="text/javascript"> 2 //简单工厂模式 3 //定义:由一个方法来决定到底要创建哪个类的实例,而这些实例经常拥有相同的接口.其实例在编译的时候不确定,而是在执行的时候确定. 4 var request1=Request("cgi.xx.com/xxx","get"); 5 request1.start(); 6 request1.done(fn); 7 var request2=Req