创建模式

来源:互联网 发布:杨震"四知"文言文翻译 编辑:程序博客网 时间:2024/06/07 02:08

       看设计模式有些日子了,但是感觉空空的,脑子里没有留下什么,所以想停下来总结总结,回忆回忆!

       设计模式看着很多,整本书有三十章,包括具体的模式和设计原则,其实归类划分有六大原则,23个模式,具体的模式又分为三大类,分别为创建模式、行为模式和结构模式,今天就先看看创建模式吧!创建模式中包含了工厂模式(简单工厂、工厂方法、抽象工厂)、建造者模式、原型模式、单例模式、多例模式。

【工厂模式】

简单工厂模式

介绍

       简单工厂是我们接触的第一个设计模式,应该算是最简单的吧。我们开始的想法就是程序能够运行,没有bug,就是好的,根本没有意识去考虑代码的可维护性、可复用性、可扩展性、灵活性,更不会去想设计原则了。

类图


流程

       先实例化一个Operation,然后输入运算符号,例如“+”,此时就用的了工厂OperationFactory,在里面判断输入的运算符号,然后根据判断的情况实例化出具体的运算类OPerationAdd,接着输入运算数字A和B,最后在加法类中得到运算结果并输出。

工厂方法

介绍

       比简单工厂更加优化,更加细化,在简单工厂的细化出具体的工厂,即加法、减法、乘法、除法工厂。

专业术语就是Factory Method是定义一个用于创建对象的接口,让子类决定实例化哪个类。工厂方法使一个类的实例化延迟到子类。

流程

       先由接口实例化一个工厂,例如大学生工厂,实例大学生的时候实现工厂中的方法,并创建出大学生子类,大学生子类又是继承雷锋基类,实现具体行为。

抽象工厂

介绍

       Abstract Factory,提供一个创建一系列相关或者相互依赖对象的接口,而无需要指定他们具体的类。


优点

       易于交换产品系列,让具体的创建实例过程与客户端分离,客户端是通过他们的抽象接口操纵实例,产品的具体类名也被具体工厂的实现分离,不会出现在客户端中。符合开放-封闭原则和依赖倒转原则。

缺点

      有一个丑陋的做法就是需要大批量的改动。

流程

       先实例化出新的Department和User以及需要访问的数据库的工厂,例如AccessFactory,然后在工厂中实例化出访问的用户,在此用户下实现具体的增加方法。

【建造者模式】

介绍

        Builder将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
建造者模式又叫做生成器模式,如果创建一个小人,就要将一个复杂的对象的构建和它的表示分离开,使得同样的构建过程可以创建不同的表示的意图。我们只要指定需要构造的类型就可以得到目标对象,而具体建造的过程和细节就不需要知道了。

【原型模式】

介绍

       Prototype用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
例如复印简历,一般情况下是我们都是代码无措便是优,但是现在设计到了设计模式和原则的问题,我们不得不去考虑更加的优化,让代码的重复率最小,复用性最高等。此时需要复印多份简历,并且是相同的或者不同的都可以适用,就需要谈谈原型模式了。这里也涉及到了深浅复制,即传值和传引用的问题,如果字段是值类型的,则为该字段执行逐为复制;如果字段是引用类型,则复制引用但不复制引用的对象。

【单例模式】

介绍

       保证一个类仅有一个实例,并提供一个访问他的全局访问点。让类自身保存它的唯一实例,这个类可以保证没有其他实例可以被创建,并且它可以提供一个访问该实例的方法。

创建者模式


0 0
原创粉丝点击