JS模式:又一个简单的工厂模式
运行下面代码
<!DOCTYPE html> <html> <head> <title></title> </head> <body> <script> function Car(options){ this.doors = options.doors || 4; this.state = options.state || "brand new"; this.color = options.color || "silver"; }; function Truck(options){ this.state = options.state || "used"; this.wheelSize = options.wheelSize || "large"; this.color = options.color || "blue"; }; function VehicleFactory(){}; VehicleFactory.prototype.vehicleClass = Car; VehicleFactory.prototype.createVehicle = function( options ){ if(options.vehicleType == "car"){ this.vehicleClass = Car; }else{ this.vehicleClass = Truck; }; return new this.createVehicle(options); }; var carFactory = new VehicleFactory({ vehicleType : 'truck', state : 'like new', color : 'red', wheelSize : 'small' }); console.log( carFactory instanceof VehicleFactory); console.log( carFactory ); function TruckFactory(){}; TruckFactory.prototype = new VehicleFactory(); TruckFactory.prototype.vehicleClass = 'truck'; var truckFactory = new TruckFactory(); console.log( truckFactory instanceof TruckFactory); //抽象 工厂模式---->_-> var AbstractVehicleFactory = (function(){ //定义车辆的类型,用来存储数据 var types = {}; return { registerVehicle : function(type,vehicle){ types[type] = vehicle; }, getVehicle : function(type,customizatoins){ var vehicle = types[type]; return (vehicle) ? new topics[type](customizations) : null; } } })(); </script> </body> </html>
天道酬勤
本文作者:方方和圆圆
本文链接:https://www.cnblogs.com/diligenceday/p/3432441.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步