目录
  1. 1. 程序设计原则
设计模式之工厂模式

为什么要学设计模式

程序设计原则

  1. 单一原则(降低耦合度)
    两者各做各的事儿,要实现复合型功能,那么就采取合作
  2. 增强代码复用性(抽取公共的部分)

创建三个类,表示三个国家的人,分别包含name,age,sex,national,另带一个方法,说出国家名。

小白之冗余模式:

var A=function(name,age,sex,national){
var obj={};
obj.name=name;
obj.age=age;
obj.sex=sex;
obj.national=national;
obj.speak=function(){
console.log("speak A");
}
}
var B=function(name,age,sex,national){
var obj={};
obj.name=name;
obj.age=age;
obj.sex=sex;
obj.national=national;
obj.speak=function(){
console.log("speak B");
}
}
var C=function(name,age,sex,national){
var obj={};
obj.name=name;
obj.age=age;
obj.sex=sex;
obj.national=national;
obj.speak=function(){
console.log("speak C");
}
}

那么此处可以看到,每一个国家都要构建一个类,多要重复赋值属性,与编写方法,代码复用性不强,应将代码公共部分抽出来,采用抽象思想,将公共部分抽象出来,做成一个框架,一个规范,具体是如何实现通过需要进行批量生产出来,其中就包含所需要的公共部分
抽象工厂模式

function Person(name,age,sex,national){
this.name=name;
this.age=age;
this.sex=sex;
this.national=national;
}
Person.prototype.speak=function(){
throw new Error("父类的抽象方法,无实际内容");
}
// 实例A
var A=function(name,age,sex,national){
Person.call(this,name,age,sex,national);
}
A.prototype.speak=function(){
console.log("speak A");
}
new A().speak();
//实例B
var B=function(name,age,sex,national){
Person.call(this,name,age,sex,national);
}
B.prototype.speak=function(){
console.log("speak B");
}
new B().speak();
文章作者: Jachie Xie
文章链接: https://xjc5772.github.io/2019-12/09/%E5%AD%A6%E4%B9%A0/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F%E4%B9%8B%E5%B7%A5%E5%8E%82%E6%A8%A1%E5%BC%8F/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 XJC&Blog
打赏
  • 微信
  • 支付宝

评论