怎么制做网站,上海兴业建设有限公司网站,深州做网站公司,公司网站设计案例对比简单工厂#xff0c;工厂方法#xff0c;抽象工厂模式 比较安全组合模式和透明组合模式
安全组合模式容器节点有管理子部件的方法#xff0c;而叶子节点没有#xff0c;防止在用户在叶子节点上调用不适当的方法#xff0c;保证了的安全性#xff0c;防止叶子节点暴露…
对比简单工厂工厂方法抽象工厂模式 比较安全组合模式和透明组合模式
安全组合模式容器节点有管理子部件的方法而叶子节点没有防止在用户在叶子节点上调用不适当的方法保证了的安全性防止叶子节点暴露方法缺点有可能在区分叶子对象和容器对象会需要进一步判断。
透明组合模式容器节点和叶子节点都有一致的方法客户端可以一致的去对待和处理叶对象可能会实现一些对它本身无意义的方法。
比较状态模式和策略模式
目的状态模式主要用于对象的行为依赖于他的状态
策略模式用于一系列封装好的算法或者策略互相替换
触发条件
状态模式是由对象的内部的状态模式改变触发的
策略模式是由客户端代码主动的去选择不同的策略来触发的
使用场景
状态模式可以对应多个状态
策略模式无论使用什么策略最后的目的都是相同的具有一致性。
什么是设计模式设计模式的基本要素
定义设计模式是一套被反复使用被多数人知晓的经过分类编目的代码设计经验的总结。
基本要素模式名称问题目的解决方案效果实例代码和相关设计模式。
三种类型模式
创建型注重对象的创建过程
结构型更加关注类与对象的组织
行为型更加关注对象之间的交互 单例模式的优缺点
单例模式在内存中只有一个实例减少了内存的开支特别是一个对象需要频繁的创建和销毁时单例模式的优点就特别明显。
单例模式可以避免对资源的多重占用
单例模式设置了全局唯一的全局访问点优化共享资源访问。
缺点
扩展困难
单列类的职责过重
由于自动垃圾回收机制可能会导致共享的单例对象状态丢失
继承
优点
代码共享、减少创建类的工作量每个子类拥有父类的方法和属性
提高代码复用
子类可以形似父类但又异于父类
提高代码可扩展性很多开源框架的扩展接口都是通过继承父类完成
提高产品或者项目的开放性
继承缺点鸡蛋挑骨头
继承是侵入式的
降低代码的灵活性。子类必须拥有父类的属性和方法让子类多了些约束。
增强了耦合性。当父类的常量、变量和方法被修改时需要考虑子类的修改。
透明装饰模式和半透明装饰模式
要求客户端完全针对抽象编程装饰模式的透明性要求客户端程序不应该将对象声明为具体构件类型或具体装饰类型而应该全部声明为抽象构件类型
对于客户端而言具体构件对象和具体装饰对象没有任何区别
可以让客户端透明地使用装饰之前的对象和装饰之后的对象无须关心它们的区别。可以对一个已装饰过的对象进行多次装饰得到更为复杂、功能更为强大的对象
半透明(Semi-transparent)装饰模式用具体装饰类型来定义装饰之后的对象而具体构件使用抽象构件类型来定义
对于客户端而言具体构件类型无须关心是透明的但是具体装饰类型必须指定这是不透明的
可以给系统带来更多的灵活性设计相对简单使用起来也非常方便
客户端使用具体装饰类型来定义装饰后的对象因此可以单独调用函数
最大的缺点在于不能实现对同一个对象的多次装饰而且客户端需要有区别地对待装饰之前的对象和装饰之后的对象
代理的几种模式
保护代理(Protect Proxy)控制对一个对象的访问可以给不同的用户提供不同级别的使用权限
虚拟代理(Virtual Proxy)如果需要创建一个资源消耗较大的对象先创建一个消耗相对较小的对象来表示真实对象只在需要时才会被真正创建 2024年考的是
七大原则5个结构型设计模式产品等级结构和产品族的区别工厂方法的定义