设计模式学习01-简单工厂模式

it2024-08-02  39

简单工厂模式

又称静态工厂方法,由一个工厂对象决定创建,某一种产品对象类的实例,主要用来创建同一类对象。


文章目录

简单工厂模式例子一例子二


例子一

比如创建一些书,这些书有公共的属性,比如目录,页码等,也有一些不同的属性,比如出版日期,作者等等,所以对于不同的属性进行针对性处理,比如将不同属性作为参数传递进来

function createBook(name, time, type) { // 创建一个对象,并对对象拓展属性和方法 var obj = new Object(); obj.name = name; obj.time = time; obj.type = type; obj.getName = function () { console.log(this.name); } return obj; } var b1 = createBook("js book", 2014, "js"); var b2 = createBook("css book", 2012, "css"); b1.getName(); b2.getName();

通过创建一个新对象然后包装增强其属性和功能来实现。如果这些类继承同一父类,但是创建的对象是一个新的个体,所以此时的方法或者属性是不能公用的。

例子二

var BasketBall = function () { this.name = "篮球"; } BasketBall.prototype = { getMemeber: function() { console.log("需要五名队员")}, getBallSize: function() {w console.log("很大"); } } var FootBall = function () { this.name = "足球"; } FootBall.prototype = { getMemeber: function() { console.log("需要11名队员")}, getBallSize: function() { console.log("也很大"); } } // 运动工厂 var sportsFactory = function(name) { switch(name) { case 'NBA': return new BasketBall(); case 'wordCup': return new FootBall(); } } // 创建需要的球类 var basketbBall = sportsFactory('wordCup');

这种通过类的实例化对象创建。如果这些类继承同一父类,那么他们父类上的原型方法是可以公用的

最新回复(0)