我的设计模式:享元模式

遇到的问题:new了太多对象,内存溢出了!!!

问题思考:为什么new对象,new代表新的,但是新在哪里呢?别告诉我new出来的东西地址值不一样,new一个对象仅仅是为了获得一个地址值不一样的对象吗?No

个人认知:类定义了规定了一群对象的具有的行为和属性,而不同的对象之间应该表现在属性值不一样上啊!!!行为方法无差别

那么new一个属性值一样并且不变的对象将毫无意义!!!

So如何解决这种无意义的内存消耗呢?单例模式、多例子模式、工厂模式+享元模式

享元模式常用技巧:抽取可变属性、重写equals和hashcode方法

常见的享元模式思考案例:
String str1 ="HE "
String str2 = "PAN"
String str3 = "HE PAN"
String str4 =str1+str2
System.out.println(str3 == str4)

猜你喜欢

转载自blog.51cto.com/13496382/2155173