【初涉开发】初读设计模式
因为我一直没搞过开发,所以一直对设计模式特别好奇,一直想找个机会浅读一下设计模式相关概念。
内容出自设计模式,是githubdaily推荐的一个网站,网站还蛮可爱的。
概念:设计模式是解决特定问题的一般性概念(工具箱)
模式一般包含哪些内容:
- 意图:简单描述问题和解决方案
- 动机:进一步解释问题并说明模式会如何提供解决方案
- 结构:展示模式的每个部分和他们之间的关系
- 在不同语言中实现
创建型模式
单例模式
意图:让你能够保证一个类只有一个实例, 并提供一个访问该实例的全局节点。
问题:
1.保证一个类只有一个实例
如果你创建了一个对象, 同时过一会儿后你决定再创建一个新对象, 此时你会获得之前已创建的对象, 而不是一个新对象。
可以控制某些共享资的访问权限
2. 为该实例提供一个全局访问节点
和全局变量一样, 单例模式也允许在程序的任何地方访问特定对象。 但是它可以保护该实例不被其他代码覆盖。
解决方案:
1. 将默认构造函数设为私有
2. 新建一个静态构建方法作为构造函数。
工厂方法模式,其在父类中提供一个创建对象的接口, 允许子类决定实例化对象的类型。
问题:
如何对不同的类,在应用中进行不同的处理
解决方案:
产品拥有共同的基类或者接口,子类返回不同类型的产品,同时基类中的工厂方法还应将其返回类型声明为这一共有接口。
示例:
抽象工厂模式
能创建一系列相关的对象,而无需指定其具体类
生成器模式
分步骤创建复杂对象。 该模式允许你使用相同的创建代码生成不同类型和形式的对象。
原型模式
使你能够复制已有对象, 而又无需使代码依赖它们所属的类。
害,又给自己挖个坑。