下面这两幅图哪个算是抽象工厂模式,还是说都是抽象工厂模式,只不过抽象的方法不一样,哪种抽象更好一点?
我认为这两个应该都算是“抽象工厂”(当然还要包含你没有给出的“产品族”的层次结构)。
这两个的不同之处就在于对要解决的问题抽象出了不同的解决方案,也就是说是看待问题的角度不同,造成了差异性的设计。
至于哪个好,我只是觉得第一个抽象更符合我的第一意识。但是具体那个方案能更好的解决问题,还要看具体问题是什么
第一个是抽象工厂。
creator负责generate一个产品族。
根据"开-闭"原则来说,抽象工厂是对产品族"开放"。
比如增加一个mac的button,textbox的话只需要增加对应的工厂,对应的button,textbox的impl就可以了
第二个看上去不是抽象工厂,可能要换个维度来看喽。
两个都是,哪个更适合你的应用那个就更好
我觉得第二种比较好,看你实际需求。。。。。。。。。