个人思考:
- Controller首次调用Architecture实现类.Interface时,框架中的Utility、Model和System才进行初始化,可能是为了体现有实际需求时再实例化Model、System和Utility各层的思想
- 初始化时由于可能发生引用为空的问题 以及 字典中还未添加相关Key-Value的问题,在MakeSureArchitecture方法中先将各层初始化;并将各层添加进字典中,然后再逐个调用Init方法,并且先调用Model的Init,再调用System的Init,这样避免出现System可能再一开始就需要Model的具体值,但由于Model未调用Init方法导致System取到的值为默认空值的问题。
- 各种Command并没有像Model、System和Utility直接在一开始就添加进字典,而是有需求时再生成调用。可能是出于Command一般会很多的考虑,没有将Command做成单例