享元模式详解:内蕴与外蕴状态及分类

需积分: 34 474 下载量 68 浏览量 更新于2024-08-10 收藏 1.31MB PDF 举报
"本文主要介绍了享元模式的概念、分类以及如何在Vue中不通过路由直接获取URL参数的方法。享元模式是一种设计模式,用于减少内存消耗,通过共享对象的内蕴状态来支持大量细粒度对象。文章提到了内蕴状态和外蕴状态的概念,其中内蕴状态是可共享的,而外蕴状态由客户端维护,根据环境变化。享元模式分为单纯享元模式和复合享元模式。此外,文章还简要介绍了工厂模式的分类,包括简单工厂模式、工厂方法模式和抽象工厂模式。" 在Vue中,不通过路由直接获取URL参数的方法通常涉及到JavaScript的URLSearchParams接口。以下是一个示例,展示如何在Vue组件中获取URL参数: ```javascript <template> <div> {{ urlParams }} </div> </template> <script> export default { data() { return { urlParams: {} }; }, created() { const urlParams = new URLSearchParams(window.location.search); this.urlParams = Object.fromEntries(urlParams.entries()); } }; </script> ``` 在这个例子中,`created`生命周期钩子函数在组件创建时被调用。`window.location.search`返回URL的查询字符串,即URL中"?"后面的部分。`URLSearchParams`接口用于处理查询字符串,`entries()`方法返回一个迭代器,可以转换成键值对数组。最后,`Object.fromEntries()`将这些键值对转换为一个对象,便于在Vue组件中使用。 享元模式在实际开发中可能不常见,但理解它的理念对于优化性能非常重要。例如,如果一个应用需要创建大量相似的对象,享元模式可以通过共享对象的部分状态来降低内存占用。而在工厂模式中,选择合适的工厂类可以简化对象创建的复杂性,提高代码的可扩展性和灵活性。简单工厂模式适用于产品种类较少且固定的场景,而工厂方法模式和抽象工厂模式则更适合于产品族和产品等级结构的场景。