一:工厂模式
1.所有对象的创造,都由一个对象去创造。不关心怎么创造对象和对象能干嘛(理解:在把问题抽象成设计模式时,不需要关心对象如何产生的)
2.工厂模式是一种抽象的思维,并没有要求具体的代码形式。如下情况可以考虑使用工厂模式:
传入(不同)参数 -> 工厂方法/工厂类 -> new (不同)对象
二:其他问题
1.“equal”和“==”的区别
“==”:比较的是左右两边是否是一个对象,比较的是地址。
equal: 一个系统提供的可以由开发者重写的方法,所以具体的对比内容要根据具体的equal方法实现来判断。一般指对象的内容是否相等。
一般用法:值类型使用“==”来进行比较,equal用于对象的比较。
string类型是一种特殊的引用类型,其“==”和equal方法作用一样比较内容是否相等。(困惑:==不是比较地址吗?string也是比较值了?怎么实现的?)
2.内存分为堆、栈、全局变量区
直接声明的变量放在栈里,所处方法执行完毕变量就被释放。
new 出来的对象存放在堆里,所在方法执行完毕也不会释放,知道引用其的指针数为0才被释放。
全局变量区:全局变量 static