看设计模式有些日子了,但是感觉空空的,脑子里没有留下什么,所以想停下来总结总结,回忆回忆!
设计模式看着很多,整本书有三十章,包括具体的模式和设计原则,其实归类划分有六大原则,23个模式,具体的模式又分为三大类,分别为创建模式、行为模式和结构模式,今天就先看看创建模式吧!创建模式中包含了工厂模式(简单工厂、工厂方法、抽象工厂)、建造者模式、原型模式、单例模式、多例模式。
简单工厂是我们接触的第一个设计模式,应该算是最简单的吧。我们开始的想法就是程序能够运行,没有bug,就是好的,根本没有意识去考虑代码的可维护性、可复用性、可扩展性、灵活性,更不会去想设计原则了。
先实例化一个Operation,然后输入运算符号,例如“+”,此时就用的了工厂OperationFactory,在里面判断输入的运算符号,然后根据判断的情况实例化出具体的运算类OPerationAdd,接着输入运算数字A和B,最后在加法类中得到运算结果并输出。
比简单工厂更加优化,更加细化,在简单工厂的细化出具体的工厂,即加法、减法、乘法、除法工厂。
专业术语就是Factory Method是定义一个用于创建对象的接口,让子类决定实例化哪个类。工厂方法使一个类的实例化延迟到子类。
先由接口实例化一个工厂,例如大学生工厂,实例大学生的时候实现工厂中的方法,并创建出大学生子类,大学生子类又是继承雷锋基类,实现具体行为。
Abstract Factory,提供一个创建一系列相关或者相互依赖对象的接口,而无需要指定他们具体的类。
易于交换产品系列,让具体的创建实例过程与客户端分离,客户端是通过他们的抽象接口操纵实例,产品的具体类名也被具体工厂的实现分离,不会出现在客户端中。符合开放-封闭原则和依赖倒转原则。
有一个丑陋的做法就是需要大批量的改动。
先实例化出新的Department和User以及需要访问的数据库的工厂,例如AccessFactory,然后在工厂中实例化出访问的用户,在此用户下实现具体的增加方法。