【初涉开发】初读设计模式

因为我一直没搞过开发,所以一直对设计模式特别好奇,一直想找个机会浅读一下设计模式相关概念。

内容出自设计模式,是githubdaily推荐的一个网站,网站还蛮可爱的。

概念:设计模式是解决特定问题的一般性概念(工具箱)

模式一般包含哪些内容:

  • 意图:简单描述问题和解决方案
  • 动机:进一步解释问题并说明模式会如何提供解决方案
  • 结构:展示模式的每个部分和他们之间的关系
  • 在不同语言中实现

创建型模式

单例模式

意图:让你能够保证一个类只有一个实例, 并提供一个访问该实例的全局节点。

问题:

1.保证一个类只有一个实例

如果你创建了一个对象, 同时过一会儿后你决定再创建一个新对象, 此时你会获得之前已创建的对象, 而不是一个新对象。

可以控制某些共享资的访问权限

2. 为该实例提供一个全局访问节点

和全局变量一样, 单例模式也允许在程序的任何地方访问特定对象。 但是它可以保护该实例不被其他代码覆盖。

解决方案:

1. 将默认构造函数设为私有

2. 新建一个静态构建方法作为构造函数。

工厂方法模式,其在父类中提供一个创建对象的接口, 允许子类决定实例化对象的类型。

问题:

如何对不同的类,在应用中进行不同的处理

解决方案:

产品拥有共同的基类或者接口,子类返回不同类型的产品,同时基类中的工厂方法还应将其返回类型声明为这一共有接口。

示例:

【初涉开发】初读设计模式

抽象工厂模式

能创建一系列相关的对象,而无需指定其具体类

生成器模式

分步骤创建复杂对象。 该模式允许你使用相同的创建代码生成不同类型和形式的对象。

原型模式

 使你能够复制已有对象, 而又无需使代码依赖它们所属的类。

 

害,又给自己挖个坑。