For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
【引出蝇量模式】
现在假设有一个项目,这个项目是为公园设计一个景观的部署,那么这个时候就会有一个问题出现,那么就是避免不了的会有一个树的类,树会很多,那么这个时候如果按照传统的方案来合计,我们会这样的设计:
然后,我们会建立很多树的对象,属性的含义分别为:x坐标,y坐标,年轮,显示的样式(比如:小树苗,参天大树等)
要想减小内存,必然要减少对象的出现,那就需要分析这些对象是否存在一些变与不变的东西,我们可以发现这些对象都很小,但是有一个共性就数量很大,那么针对对象小如苍蝇一样虽然小,但是量大,还是比较恐怖的,那么就引出了蝇量模式。
【解决办法】
首先,我们分析上述树这个类中,我们发现x坐标,y坐标,age 都是会变化的,而display 是随着x y age进行变化的,那就是说x y age 我们可以看成是一个外部状态是没有办法共享的,但是display 是可以共享,只是随外部状态变化而已,那这个display我们可以当做内部状态来进行处理;这样就可以分为两个对象,一个是持有display的蝇量对象,一个是控制 x y age的外部状态管理的管理对象。
第1步:我们采用蝇量模式的目的,就是为了解决对象小但数量多的问题,那么要解决,就要抽出内部状态和外部状态;那么任何一个都是这样来玩;比如上面的树,那么如果比如现在加入了草这个对象,也是一样的进行抽象;只是我在抽取蝇量对象的时候,发现树和草会有共性的出现,于是就抽化到了父类中,于是就出现了上面的抽象类,然后继承实现各个自己的蝇量。
第2步:既然抽象出了公共类,那么我们知道需要产生蝇量对象,如果对象种类比较多,这个时候我们可以采用工厂模式来做,并用一个集合来存放,已经有的蝇量对象就不在创建,如果没有就创建并放入到集合中使用;然后还有一个对象就是管理对象了client
免责声明:本文由昆明it培训小编转载自网络,旨在分享提供阅读,版权归原作者所有,如有侵权请联系我们进行删除
0元课程试听报名开始!