为什么要学设计模式
程序设计原则
- 单一原则(降低耦合度)
两者各做各的事儿,要实现复合型功能,那么就采取合作 - 增强代码复用性(抽取公共的部分)
创建三个类,表示三个国家的人,分别包含
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){ |