标签:生成器 依赖 处理 策略 实体 具体类 工厂方法 tab 模式
创建型模式:
模式分类
目的:
创建型(Creational)模式:负责对象创建
结构型(Structural)模式:处理类与对象间的组合
行为型(Behavioral)模式:类与对象交互中的职责分配
范围:
类模式处理类与子类的静态关系
对象模式处理对象间的动态关系
Singleton 单件: 保证一个类仅有一个实例,并提供一个该实例的全局访问点
Abstract Factory 抽象工厂模式: 提供一个接口,让该接口负责创建一系列“相关或者相互依赖的对象”,无需指定它们具体的类。
Builder 生成器模式:将一个复杂对象的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。
Factory Method 工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使得一个类的实例化延迟到子类。
Prototype 原型模式: 使用原型实例指定创建对象的种类,然后通过拷贝这些原型来创建新的对象。
名称 | 要点 |
Singleton 单件 |
1.Singleton模式中的实例构造器可以设置为protected以允许子类派生。 2.Singleton模式一般不要支持ICloneable接口,因为这可能会导致多个对象实例,与Singleton模式的初衷违背。 3.Singleton模式一般不要支持序列化,因为这也有可能导致多个对象实例,同样与Singleton模式的初衷违背。 4.Singleton模式只考虑到了对象创建的管理,没有考虑对象销毁的管理。就支持垃圾回收平台和对象的开销来讲,我们一般没有必要对其销毁进行特殊的管理。 5.不能应对多线程环境:在多线程环境下,使用Singleton模式仍然有可能得到Singleton类的多个实例对象。 |
Abstract Factory 抽象工厂模式 |
1.如果没有应对“多系列对象创建”的需求变化,则没有必要使用AbstractFactory模式,这时候使用简单的静态工厂完全可以。 2."系列对象"指的是这些对象之间有相互依赖、或作用的关系,例如游戏开发场景中“道路”与“房屋”的依赖,“道路”与“地道”的依赖。 3.AbstractFactory模式主要在于应对“新系列”的需求变动。其缺点在于难以应对“新对象”的需求变动。 4.AbstractFactory模式经常喝FactoryMethod模式共同组合来应对“对象创建”的需求变化。 |
Builder 生成器模式 |
1.Builder模式主要用于“分步骤构建一个复杂的对象”。在这其中“分步骤”是一个稳定的算法(即Director,如上面例子中的GameManager),而复杂对象的各个部分(即ConcreteBuilder)则经常变化。 2.变化点在哪里,封装哪里——Builder模式主要在于应对“复杂对象各个部分”的频繁需求变动。其缺点在于难以应对“分步骤构建算法”的需求变动。(例如房屋构造如果经常改变,那么这个Builder模式也没有意义了) 3.AbstractFactory模式解决“系列对象”的需求变化,Builder模式解决“对象部分”的需求变化。Builder模式通常和Composite模式组合使用。 |
Factory Method 工厂方法模式 |
1.Factory Method模式主要用于隔离类对象的使用者和具体类型之间的耦合关系。面对一个经常变化的具体类型,紧耦合关系会导致软件的脆弱。 2.Factory Method模式通过面向对象的手法,将所要创建的具体对象工作延迟到子类,从而实现一种扩展(而非更改)的策略,较好地解决了这种紧耦合关系。 |
Prototype 原型模式 |
1.Prototype模式同样用于隔离类对象的使用者和具体类型(易变类)之间的耦合关系,它同样要求这些“易变类”拥有“稳定的接口”。 2.Prototype模式对于“如何创建易变类的实体对象”(创建型模式除了Singleton模式以外,都是用于解决创建易变类的实体对象的问题的)采用“原型克隆”的方法来做,它使得我们可以非常灵活地动态创建“拥有某些稳定接口”的新对象——所需工作仅仅是注册一个新类的对象(即原型),然后在任何需要的地方不断地Clone。 3.Prototype模式中的Clone方法可以利用.NET中的Object类的MemberwiseClone()方法或者序列化来实现深拷贝。 |
UML:
物理视图:
物理视图对应自身的结构实现建模,图中的类将会映射称为物理结构中的节点。物理视图分为实现视图和部署视图。实现视图为系统中的构件建模,以及构件之间的依赖关系,通过对依赖关系修改评估对系统可能带来的影响。图例:
模型管理视图:
它是对模型自身组织的建模。模型是从某一观点以一定精确度对系统所进行的完整性描述。图例:
标签:生成器 依赖 处理 策略 实体 具体类 工厂方法 tab 模式
原文地址:https://www.cnblogs.com/jyzj/p/14415557.html