首页 > 试题广场 >

哪些设计模式是降低资源使用率:

[不定项选择题]
哪些设计模式是降低资源使用率:
  • prototype
  • singleton
  • flyweight
  • abstract factory
BC吧 单例和享元 
降低资源使用率 应该是强调代码的复用
A是原型模式,每个类都要有一个克隆方法
D抽象工厂就是换了个地方
发表于 2015-09-06 11:04:03 回复(0)
首先单例模式肯定降低了资源使用率,保证该类的实例永远只有一个! 原型模式适用于在初始化信息不发生变换的情况,克隆的方法比较适合,主要的目的是避免重新初始化对象,如果后面需要对新对象进行,还需要区分深拷贝和浅拷贝。无论是深拷贝还是浅拷贝只是复制了资源,并没有降低资源使用率。 享元模式(Flyweight): 基于共享技术用于把一些共同的信息(或模块)抽象出来,避免了大量相似类的开销,也降低了资源的使用率。 如Java和C++ 初始化一个string类的信息,以C++为例: string s ="hello"; string p = "hello"。(这个在C++中有问题,容易混淆,特此说明,也有考察C++中string实现的问题。建议用C来描述 char *s = "hello"和char *p = "hello",s和p指向同一个地址),他们其实是一个相同的实例,字符串对象在内存中的共享 答案BC
发表于 2017-01-11 07:48:20 回复(0)
这道题是多选 我记得应该是abc
发表于 2015-09-06 10:25:22 回复(2)
首先单例模式肯定降低了资源使用率,保证该类的实例永远只有一个!

原型模式适用于在初始化信息不发生变换的情况,克隆的方法比较适合,主要的目的是避免重新初始化对象,如果后面需要对新对象进行,还需要区分深拷贝和浅拷贝。无论是深拷贝还是浅拷贝只是复制了资源,并没有降低资源使用率。

享元模式(Flyweight): 基于共享技术用于把一些共同的信息(或模块)抽象出来,避免了大量相似类的开销,也降低了资源的使用率。

如Java和C++ 初始化一个string类的信息,以C++为例: string s ="hello"; string p = "hello"。(这个在C++中有问题,容易混淆,特此说明,也有考察C++中string实现的问题。建议用C来描述 char *s = "hello"和char *p = "hello",s和p指向同一个地址),他们其实是一个相同的实例,字符串对象在内存中的共享

答案BC


编辑于 2015-09-06 17:19:07 回复(7)
singleton 单例模式,简单说就是只有自己,为自己设计。降低了重复使用。降低资源使用率
flyweight 设计中的享元模式,避免大量拥有相同内容的小类的开销,因为他让大家共享一个类。
发表于 2015-10-11 22:23:24 回复(1)
单例模式的核心应该是维持唯一性,用单例本身就说明资源是唯一的,不存在降低使用率的问题
发表于 2018-05-16 20:49:16 回复(0)
不了解
发表于 2016-10-30 20:55:37 回复(0)
只有我一个人觉得“使用率”三个字有歧义吗?
发表于 2016-09-10 08:17:29 回复(2)