美文网首页
Day_18课程回顾——11.15要结束了(OOP)

Day_18课程回顾——11.15要结束了(OOP)

作者: 我是大笨蛋 | 来源:发表于2017-11-15 20:40 被阅读0次

了解设计模式吗?请至少写出4种名字。找其中一种用代码实现。并说出其优缺点。

工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。

工厂方法模式:

优点:

在简单工厂中主函数或者客户端不再负责对象的创建,而是把这个责任交给工厂类,主函数或者客户端在使用对象的时候只从工厂中调用就行了,从而明确了各个类的职责,符合单一职责原则)

缺点

由于这个工厂类负责所有对象的创建,那么当子类增多时,我们就需要去修改工厂类的代码,这样呢,就违反了一个原则:开闭原则

抽象工厂模式:

优点:

解决了简单工厂模式的违反开闭原则

缺点

如果需要增加一个具体产品类角色,需要添加这个类和对应的工厂类。代码量大。

单例模式:

优点:

在单例模式中,活动的单例只有一个实例,对单例类的所有实例化得到的都是相同的一个实例。它可以保证我们不会重复创建,而是始终指向同一个对象,因此可以节约系统资源和保持全局状态。

缺点:

不适用于变化的对象,如果同一类型的对象总是要在不同的用例场景发生变化,单例就会引起数据的错误,不能保存彼此的状态。因此单例类的扩展有很大的困难

单例类的职责过重,在一定程度上违背了“单一职责原则”。

可能会被垃圾回收机制当做垃圾回收。

相关文章

网友评论

      本文标题:Day_18课程回顾——11.15要结束了(OOP)

      本文链接:https://www.haomeiwen.com/subject/cpghvxtx.html