作者:手机用户2502884625 | 来源:互联网 | 2023-08-17 20:24
建造者模式 将复杂对象的构建和表示分类,隐藏了复杂对象的构建过程,动态创建具有复合属性的对象。
优点: 具体的建造者之间互相独立,利于系统扩展,不影响其他模块 客户端不必知道内部组成细节
缺点: 建造的产品有较多共同点,组成部分相似
使用场景 隔离复杂对象的创建和使用,相同的方法,不同执行顺序,产生不同事件结果 多个部件都可以装配到一个对象中,但产生的运行结果不相同 产品类非常复杂或者产品类因为调用顺序不同而产生不同作用 初始化一个对象时,参数过多,或者很多参数具有默认值 Builder模式不适合创建差异性很大的产品类 产品内部变化复杂,会导致需要定义很多具体建造者类实现变化,增加项目中类的数量,增加系统的理解难度和运行成本 需要生成的产品对象有复杂的内部结构,这些产品对象具备共性;
装饰模式 在不改变原有类和使用继承的情况下,动态扩展 优点: 装饰类和被装饰类可以独立发展,而不会相互耦合。它有效地把类的核心职责和装饰功能分开了 装饰模式是继承关系的一个替代方案 装饰模式可以动态地扩展一个实现类的功能 缺点: 多层装饰比较复杂,
场景 需要扩展一个类的功能时 需要动态地给一个对象增加功能,并可以动态地撤销时 需要为一批的兄弟类进行改装或加装功能时
装饰者模式关注的是对象的动态添加功能。代理模式关注的是对对象的控制访问,对它的用户隐藏对象的具体信息。 装饰者模式和被装饰的类要实现同一个接口,或者装饰类是被装饰的类的子类。 适配器模式和被适配的类具有不同的接口。