阿里云网站方案建设书模板,网站只做1单生意被罚4万两级违法,网页pc端,宣传片制作公司前景设计模式分类 模板方法模式
核心就是设计一个部分抽象类。 这个类具有少量具体的方法#xff0c;和大量抽象的方法#xff0c;具体的方法是为外界提供服务的点#xff0c;具体方法中定义了抽象方法的执行序列
装饰器模式
现在有一个对象A#xff0c;希望A的a方法被修饰 …设计模式分类 模板方法模式
核心就是设计一个部分抽象类。 这个类具有少量具体的方法和大量抽象的方法具体的方法是为外界提供服务的点具体方法中定义了抽象方法的执行序列
装饰器模式
现在有一个对象A希望A的a方法被修饰 实现思路
将A抽象成抽象类O装饰器类D来继承O并聚合O装饰器类D的构造函数传参O并赋值给所聚合的O装饰器类D可以不用实现a方法保持抽象具体装饰类D1继承装饰器类D新增修饰方法d1然后再重写a方法重写内部使用修饰方法d1并调用super.a具体装饰类D2继承装饰器类D新增修饰方法d2然后再重写a方法重写内部使用修饰方法d2并调用super.a……使用时新建原始对象A把A传入D1构造器并再次用A接收再把A传入D2构造器并再次用A接收……于是实现了多重装饰每一层装饰都对上层屏蔽了下层细节
适配器模式
实现适配器之前 实现适配器之后 继承方式实现 委托方式实现
代理模式
代理模式和装饰器模式在作用上类似不过代理模式侧重于缓解原对象的某些繁重的工作而装饰器模式侧重于对原对象的某些行为进行修饰和控制
简单工厂、工厂方法、抽象工厂、建造者模式的对比
始终保持面向“产品”思考 当仅需要创造一类产品且产品内部类别不多时使用简单工厂模式 当仅需要创造一类产品但产品内部类别纷繁且多变时使用工厂方法模式 当需要创造多类产品且产品内部类别纷繁且多变时使用抽象工厂模式抽象工厂模式可以用来制造复杂的产品“将关联零件组装成产品” 在抽象工厂模式下一个最终产品往往是由多个部分组成的如上图中最终产品就是由产品A和产品B共同组成的这就导致一个问题可能由于客户端代码的编写疏忽而导致漏掉某一个部分。于是有了建造者模式 建造者模式中新增了Director类它就相当于一个“保险类”在Director内部提前编写好没有遗漏任何一个部分的组装流程然后暴露一个简单的SAP——construct方法直接由客户端调用这样客户端就从如履薄冰的复杂构造过程中解放了出来降低了出错的概率
组合模式
一句话精髓——容器与内容的一致性 最好的例子——文件和文件夹的例子 组合模式最特别的地方就是Composite类含有一个对抽象的Component的聚合
Flyweight模式享元模式 Facade模式外观模式
一句话总结——接口API变少了
Visitor模式观察者模式
《图解设计模式》这本书太好了一段话就能把一个设计模式的关键讲清楚