策略模式:它定义了算法家族,分别封装起来,让它们之间可以互相替换,
此模式让算法的变化,不会影响到使用算法的客户。
封装变化是我们面向对象的一种很重要的思维方式。
在我们项目中的体现就是,如果要在不同的时刻应用不同的业务规则,
就可以使用策略模式。
只使用策略模式在客户端需要进行判断,根据传入的参数去传入不同的实例化子类。
如果使用简单工厂和策略模式配合,那么客户端就不用判断,将判断封装到后台,客户端只需要传入条件就好!这样客户端代码就会变得非常简洁。
装饰模式是为了已有功能动态地添加更多功能的一种方式。
装饰模式:动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更灵活。
我们使用装饰着模式,可以在不修改原有功能的同时,对整个方法进行增强!比如说我们小时候每次考试完,老师都会让我们把卷子拿回家让家长看看并签字。当然啦,学习好的学生不用说也会让家长看的,像咱们这些小渣渣,是打死都不愿意的。但是不签字又不行,于是乎我们肯定在让家长看之前,先汇报一下最高成绩是多少(当然了有考满分的就不要汇报最高成绩了),自己上次考了多少进步了多少(退步的不要汇报),班级排名进步了多少等等,一切有利于自己的情况肯定会说的!如果没有一项是有利于你的,那么请保重!那么这就是我们对成绩的一个装饰!反映到程序中就是我们先执行有利于我们的情况,然后显示成绩!