关于实验中使用的一些设计模式的理解(1)

在lab中很多时候都会要求使用一些模式来设计ADT,常用的一些模式包括工厂模式、装饰器模式、单例模式、策略模式等等,今天在这里对这些模式做个简单的总结,介绍一些模式的思想

工厂模式

工厂的本质是建立一个类以快速产生一系列有共同特征的对象实例,这就免去了用户耗费精力从一系列类挑选所需要的类。我们把能产生多种实例的类成为工厂类,而产生的实例成为产品

1.介绍:

不同于那些繁琐复杂的定义,我更喜欢这样的介绍:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。

2.组成:

抽象工厂:在程序中可能是一个接口或者抽象类,对工厂类进行规范。
具体工厂:具体存在的类,在程序中继承抽象工厂,实现抽象工厂中的方法,产生具体的产品。
抽象产品:在程序中可能是多个接口或者多个抽象类,被具体产品继承以规范它们。
具体产品:用户真实需要的类。它继承自某一个抽象产品。

总结的来说,它是在简单工厂中引入了抽象类和接口的概念,从而使工厂的扩展变得更加简单。

引用一个UML图来更清晰的观察它的组成
在这里插入图片描述

3.优点:

使用设计模式最重要的是明白自己为什么使用,这样会给自己带来什么益处。这是我总结的一些优点

1.封装性:这个模式隔离了实际类的生产,用户只要调用函数就能实例化对象,但他并不知道到底是什么对象被实例化。
2.可扩展性:引入的接口和抽象类使得增加新的工厂和产品很方便,你只需要添加新的代码而无须修改已经完成的代码。
3.你可以保证不会有你意料不到的对象被建立,因为所有实例都有工厂产生,你就可以很方便的管理所以的实例,比如记录已经生成的实例的数量等等,正因为如此你还可以把它与其他设计模式相结合,比如单例模式等等。

猜你喜欢

转载自blog.csdn.net/u013551670/article/details/91045929
今日推荐