复杂工厂模式

简介: 复杂工厂模式

前言

我是歌谣 我有个兄弟 巅峰的时候排名c站总榜19 叫前端小歌谣 曾经我花了三年的时间创作了他 现在我要用五年的时间超越他 今天又是接近兄弟的一天人生难免坎坷 大不了从头再来 歌谣的意志是永恒的 放弃很容易 但是坚持一定很酷


导语

复杂工厂模式




编辑


代码部分

//第一步 定义自行车的构造函数 两个属性 一个name和一个方法method
var BicycleShop = function(name){
    this.name = name;
    this.method = function(){
        return this.name;
    }
};
BicycleShop.prototype = {
    constructor: BicycleShop,
    /*
     * 买自行车这个方法
     * @param {model} 自行车型号
    */
    sellBicycle: function(model){
            var bicycle = this.createBicycle(model);
            // 执行A业务逻辑
            bicycle.A();
            // 执行B业务逻辑
            bicycle.B();
            return bicycle;
        },
        createBicycle: function(model){
            throw new Error("父类是抽象类不能直接调用,需要子类重写该方法");
        }
    };
    // 实现原型继承  Sub表示子类,Sup表示超类
    function extend(Sub,Sup) {
        // 首先定义一个空函数
        var F = function(){};
        // 设置空函数的原型为超类的原型
        F.prototype = Sup.prototype; 
        // 实例化空函数,并把超类原型引用传递给子类
        Sub.prototype = new F();
        // 重置子类原型的构造器为子类自身
        Sub.prototype.constructor = Sub;
        // 在子类中保存超类的原型,避免子类与超类耦合
        Sub.sup = Sup.prototype;
        if(Sup.prototype.constructor === Object.prototype.constructor) {
            // 检测超类原型的构造器是否为原型自身
            Sup.prototype.constructor = Sup;
        }
    }
    var BicycleChild = function(name){
        this.name = name;
// 继承构造函数父类中的属性和方法
        BicycleShop.call(this,name);
    };
    // 子类继承父类原型方法
    extend(BicycleChild,BicycleShop);
// BicycleChild 子类重写父类的方法
BicycleChild.prototype.createBicycle = function(){
    var A = function(){
        console.log("执行A业务操作");    
    };
    var B = function(){
        console.log("执行B业务操作");
    };
    return {
        A: A,
        B: B
    }
}
var childClass = new BicycleChild("龙恩");
console.log(childClass);

总结

以上就是复杂工厂模式的理解


相关文章
|
6月前
|
设计模式 Java
实现一个工厂模式
实现一个工厂模式
64 0
|
6月前
|
设计模式 调度
重看工厂模式
重看工厂模式
36 0
|
5月前
|
设计模式
创建型模式之工厂模式
创建型模式之工厂模式
|
2月前
|
Linux C++
工厂模式-小记
这篇文章介绍了工厂模式的三种类型:简单工厂模式、工厂方法模式和抽象工厂模式,并通过具体代码示例展示了每种模式的实现方式和应用场景。
工厂模式-小记
|
6月前
工厂模式
工厂模式
49 0
|
6月前
|
设计模式 Java
详细讲解什么是工厂模式
详细讲解什么是工厂模式
|
6月前
|
设计模式 C++
【C++】—— 工厂模式详解
【C++】—— 工厂模式详解
|
存储 设计模式 Java
多种工厂模式的运用
多种工厂模式的运用
52 0
【C++提高】 工厂模式
【C++提高】 工厂模式
59 0