复杂工厂模式

简介: 复杂工厂模式

前言

我是歌谣 我有个兄弟 巅峰的时候排名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);

总结

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


相关文章
|
4月前
|
设计模式 Java
实现一个工厂模式
实现一个工厂模式
52 0
|
4月前
|
设计模式 调度
重看工厂模式
重看工厂模式
31 0
|
4月前
工厂模式
工厂模式
45 0
|
4月前
|
设计模式
工厂模式与抽象工厂模式
​ 如有错误或有补充,以及任何的改进意见,请在评论区留下您的高见 工厂模式 工厂模式是一种创建型设计模式。在工厂模式中,类的实例化过程通常是通过一个专门的工厂类来完成的,而不是直接在客户端代码中进行的。这样可以提供更好的封装,使得客户端代码与具体产品的实现解耦,增加代码的灵活性和可维护性。 优点 封装性:客户端代码不再需要知道所创建对象的详细信息,只需要与工厂接口进行交互即可。 灵活性:工厂模式使得系统更加灵活,可以在不修改客户端代码的情况下更换或添加新产品。 可扩展性:通过使用工厂模式,当需要添加新产品时,只需要扩展工厂类,而不需要修改客户端代码。 基本结构 抽象产品(Abstra
44 0
|
4月前
|
设计模式 Java
详细讲解什么是工厂模式
详细讲解什么是工厂模式
|
4月前
|
设计模式 C++
【C++】—— 工厂模式详解
【C++】—— 工厂模式详解
|
存储 设计模式 Java
多种工厂模式的运用
多种工厂模式的运用
43 0
【C++提高】 工厂模式
【C++提高】 工厂模式
55 0
简单的工厂模式和工厂方法模式
简单的工厂模式和工厂方法模式