javascript 简单工厂模式

?





1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

var
Bicycle = new
Interface("Bicycle",["assemble","wash","ride","repair"]);

var
Lowride = function() {};

Lowride.prototype = {

    assemble: function() {

        document.write("Lowride assemble success!<br />")

    },

    wash: function() {

        document.write("Lowride wash success!<br />");

    },

    ride: function() {

        document.write("Lowride ride success!<br />");

    },

    repair: function() {

        document.write("Lowride repair success!<br />");

    }

};

var
Speedstr = function() {};

Speedstr.prototype = {

    assemble: function() {

        document.write("Speedstr assemble success!<br />")

    },

    wash: function() {

        document.write("Speedstr wash success!<br />");

    },

    ride: function() {

        document.write("Speedstr ride success!<br />");

    },

    repair: function() {

        document.write("Speedstr repair success!<br />");

    }

}

var
Comfortcruisor = function() {};

Comfortcruisor.prototype = {

    assemble: function() {

        document.write("Comfortcruisor assemble success!<br />")

    },

    wash: function() {

        document.write("Comfortcruisor wash success!<br />");

    },

    ride: function() {

        document.write("Comfortcruisor ride success!<br />");

    },

    repair: function() {

        document.write("Comfortcruisor repair success!<br />");

    }

}

var
BicycleFactory = function() {};

BicycleFactory.prototype = {

    createBicycle: function(model) {

        var
bicycle;

        switch(model){

            case
"Lowride":

                bicycle = new
Lowride();

                break;

            case
"Speedstr":

                bicycle = new
Speedstr();

                break;

            case
"Comfortcruisor":

                bicycle = new
Comfortcruisor();

                break;

        }

        Interface.ensureImplents(bicycle,Bicycle);

        return
bicycle;

    }

}

var
BicycleShop = new
BicycleFactory();

var
concertBicycle = BicycleShop.createBicycle("Speedstr");

concertBicycle.assemble();

concertBicycle.wash();

concertBicycle.ride();

concertBicycle.repair();

  

javascript 简单工厂模式,布布扣,bubuko.com

时间: 2024-10-10 06:16:01

javascript 简单工厂模式的相关文章

【Javascript设计模式】第二课 神奇的魔术师——简单工厂模式

所谓简单工厂模式就是由一个方法来决定到底要创建那个类的实例,而这些实例经常都拥有相同的接口. 简单工厂模式主要运用一下几种情况(添加个人理解) 1.对象的构建有规律性,大部分相同只有个别不同,重复代码多 2.需要依赖具体环境创建不同的实例 3.处理大量具有相同属性的小对象 具体我们来看一个小例子: 大家在开发过程中经常遇到登陆模块,首先看以下的的具体的需求: 1.用户在输入框中输入的内容不符合规范,需要定义一个提示框提示:"您输入的内容不符合规范,请重新输入" 2.用户登陆提示用户不存

Javascript设计模式理论与实战:简单工厂模式

通常我们创建对象最常规的方法就是使用new关键字调用构造函数,这会导致对象之间的依赖性.工厂模式是一种有助于消除类之间依赖性的设计模式,它使用一个方法来决定要实例化哪一个类.本文详细介绍了简单工厂模式的理论,并且举例说明了简单工厂模式的具体应用. 基本介绍 简单工厂模式是工厂模式中最基本的一种.通过定义一个工厂类,根据参数实例化具体的某个产品类. 举例说明 我们举个例子进行说明:假设我们开发一个旅游行业网站,网站上面销售机票,酒店等产品.一个用户准备购买一张机票.我们可以定义相关类如下: 1 v

简单工厂模式,构造函数模式,原型模式相关

1.简单工厂模式 :无法确定对象类型 2.构造函数模式 :私有话的问题 3.原型模式 // 1简单工厂模式 function CreatPerson(name,age,sex){ var obj=new Object(); obj.name=name; obj.age=age; obj.sex=sex; obj.sayName=function(){ console.log("姓名:"+this.name+" 年龄:"+this.age+" 性别:&quo

《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

简单工厂模式

目前正在看<大话设计模式>,写此系列的文章记录下学习的经过. 简单工厂模式 先看如下代码,使用面向对象的原理实现计算器功能 Operation运算类 1 public class Operation 2 { 3 private double numberA = 0; 4 private double numberB = 0; 5 6 public double NumberA 7 { 8 get { return numberA; } 9 set { numberA = value; } 10

大话设计模式:简单工厂模式

由于面向过程编程造成的代码膨胀问题越来越严重,使其维护的代价高,灵活性很低.为了使代码易维护.易扩展.易复用和灵活性好,所以我们在采用面向对象编程的时候,防止采用面向对象的语言实际上却做着面向过程的事儿,更需要采用某种设计模式,核心就是使程序变得高内聚,低耦合,这样的程序才能达到上面的四个优点.而简单工厂模式的出现也正是为了达到这样一种效果,将工厂和产品分块,具体解决了实例化那个对象(具体产品)的需求.从而实现了高内聚,低耦合.使程序易维护.易扩展.易复用和灵活性好.同时也用到了面向对象编程的三

Python 设计模式--简单工厂模式

简单工厂模式(Factory Pattern)是一种创建型的设计模式,像工厂一样根据要求生产对象实例. 特点:根据不同的条件,工厂实例化出合适的对象. <大话设计模式>中实例:四则运算计算器 代码: 1 #!/usr/bin/env python 2 #-*- coding: utf-8 -*- 3 4 class Operation: 5 def getResult(self): 6 pass 7 8 class OperationAdd(Operation): 9 def getResul

简单工厂模式( Simple Factory Pattern )

1. 简单工厂模式( Simple Factory Pattern ) 1.1. 模式动机 考虑一个简单的软件应用场景,一个软件系统可以提供多个外观不同的按钮(如圆形按钮.矩形按钮.菱形按钮等), 这些按钮都源自同一个基类,不过在继承基类后不同的子类修改了部分属性从而使得它们可以呈现不同的外观,如果我们希望在使用这些按钮时,不需要知道这些具体按钮类的名字,只需要知道表示该按钮类的一个参数,并提供一个调用方便的方法,把该参数传入方法即可返回一个相应的按钮对象,此时,就可以使用简单工厂模式. 1.2

设计模式的C++实现 24.简单工厂模式

简单工厂模式,又称静态工厂模式,属于创造型模式,但又不是23中GOF设计模式之一.简单工厂是由一个工厂对象决定创造出哪种产品类的实例.简单工厂模式是工厂模式中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现. 简单工厂通过传入的参数判断创建哪一个产品的实例,封装了对象的创建,客服端看到的只是产品的抽象对象,不关心返回子类的类型. 简单来说,简单工厂就是调用是传入一个参数来告诉工厂类要创建一个什么样的对象,然后工厂类返回这个对象. 缺点是 没添加一个产品子类,都要在工厂类中添加一个判断分支