设计模式之小总结

组合模式
在这里插入图片描述
就跟react的 createElement 方法出不多, 他去把虚拟dom的一个js对象树给实现了

命令模式
在这里插入图片描述
命令模式可以理解成, 客户, 前台, 跟(保洁, 厨师 等等) ,
客户: 客户只需要给前台打电话说,我需要保洁或者吃饭,但是客户不需要清楚,具体是谁来给他做饭还是保洁;
前台: 前台收到客户的需求之后,就会发布命令,然指定的人去客户那里做保洁,或者是煮饭
保洁, 厨师: 他们收到命令后,就会去执行他们的工作,他们不管谁发布指令的,只需要做一个无情的打工人就好了

class Cooker {
    cook() {
        console.log("做饭");
    }
}

class Cleaner {
    clean() {
        console.log("打扫");
    }
}


class CookCommend {
    receiverObj;
    constructor(receiver: any) {
        this.receiverObj = receiver;
    }

    execute() {
        this.receiverObj.cook();
    }
}


class CleanCommend {
    receiverObj;
    constructor(receiver: any) {
        this.receiverObj = receiver;
    }

    execute() {
        this.receiverObj.clean();
    }
}


class Customer {
    commendObj; 
    constructor(commend: any) {
        this.commendObj = commend;
    }

    setCommend(commend: any) {
        this.commendObj = commend;
    }

    clean() {
        this.commendObj.execute();
    }
    cook() {
        this.commendObj.execute();
    }
}


let cooker = new Cooker();
let cleaner = new Cleaner();
let cookCommend = new CookCommend(cooker);
let cleanCommend = new CleanCommend(cleaner);

let customer = new Customer(cookCommend);
customer.cook();
customer.setCommend(cleanCommend);
customer.clean();

享元模式
在这里插入图片描述
享元模式: 就是 flyWeight, 就是轻量级的意思, 就是我们该封装的时候就封装,该通用的就通用,该独立就独立使用, 节约内存的损耗
在这里插入图片描述
比如说是这个样子

function Person(name, age) {
    // 这里的数据是私有的
    this.name = name;
    this.age = age;
}

// 这个的方法是公有的
Person.prototype.getName = function() {
    return this.name;
}

Person.prototype.getAge = function() {
    return this.age;
}

const pp1 = new Person("a", 10);
pp1.getName();
const pp2 = new Person("b", 20);
pp2.getAge();

模板方法模式
在这里插入图片描述
模板就是我们定义好模板规则,子元素去继承, 重写他的模板就好了

class Person1 {
    dinner() {
        this.buy();
        this.cook();
        this.eat();
    }

    buy() {
        throw new Error("必须有子类实现");
    }

    cook() {
        throw new Error("必须有子类实现");
    }

    eat() {
        throw new Error("必须有子类实现");
    }
}

class Aaa extends Person1{
    buy() {
        console.log("买东西");
    }

    cook() {
        console.log("煮饭");
    }

    eat() {
        console.log("吃东西");
    }
}

let aaaa = new Aaa();
aaaa.cook();

其他的模式:
工厂模式
单例模式
适配器模式
装饰器模式
代理模式
观察者模式
策略模式
原型模式
桥接模式

具体的细节, 请参考这个视频, 讲的确实不错, 去这里

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 《设计模式之禅第3版pdf》是一本介绍设计模式的书籍,是作者秦小波总结多年编程和软件开发实践的经验而得出的结论。该书提供了许多实用的设计模式,这些模式可以帮助开发人员更好地编写可维护、可扩展和可重用的代码。 该书首先介绍了设计模式的基本概念和原则,例如SOLID原则和GRASP原则,然后详细介绍了23种常见的设计模式,包括创建型、结构型和行为型模式。 该书的优点在于,它不仅提供了许多具体的代码示例和实际应用场景,还深入解释了每个模式的原理和适用条件。此外,该书还提供了设计模式的演化历程,以及如何使用UML图形表示不同的模式。 虽然该书提供了丰富的知识,但它并不是一本初学者可以轻松掌握的书籍。初学者可能需要花费很多时间和精力来理解书中的概念和代码实例。与此同时,该书的代码示例使用Java语言,因此对于非Java开发人员可能需要适当地进行转换。 综上所述,《设计模式之禅第3版pdf》是一本非常有价值的设计模式书籍,对于希望提高代码质量和扩展性的开发人员来说,是一本必读之作。 ### 回答2: 《设计模式之禅第3版》是一本关于对象设计模式的经典著作,是程序员学习设计模式的一本不可或缺的参考书。该书共分为3部分,包含了23种设计模式,并以生动的例子和详细的代码展示了如何应用各种设计模式解决实际问题。 第一部分介绍了7种创建型模式,这些模式主要用于创建对象。其中包括了工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式、享元模式和对象池模式。通过这一部分的学习,读者可以了解到如何灵活地创建对象,避免了对象创建过程中出现的一些问题。 第二部分介绍了11种结构型模式,这些模式主要用于组织类和对象。其中包括了适配器模式、桥接模式、组合模式、装饰器模式、外观模式、享元模式、代理模式、管道过滤器模式、私有类数据模式、模板方法模式和访问者模式。通过这一部分的学习,读者可以学会如何组织各种不同类和对象之间的关系,从而更加有条理地编写代码。 第三部分介绍了5种行为型模式,这些模式主要用于管理对象之间的交互和职责。其中包括了责任链模式、命令模式、解释器模式、迭代器模式和观察者模式。通过这一部分的学习,读者可以学会如何精确地定义对象之间的互动和职责,从而更好地解决实际问题。 总体而言,《设计模式之禅第3版》由浅入深,结构清晰,用通俗易懂的语言阐述了设计模式的本质和应用,是程序员进行设计模式学习和应用的一本宝典。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值