设计模式 原型模式

通过给定的原型对象,获取所要创建的对象类型,然后复制这个原型对象创建出更多同类型的对象。

1. 结构

  • 客户角色(Client):客户类提出创建对象的请求。
  • 抽象原型角色(Prototype):给出具体原型类需要的所有接口。
  • 具体原型角色(ConcretePrototype):被复制的对象。

原型模式的关键在于如何实现克隆方法。

设计模式 建造者模式

有时,一个对象会由不同的部件组成,一些情况下,在某些部件没有恰当的值之前,对象不能作为一个完整的产品使用,甚至有时候,一个对象的组成部件必须按照某个顺序赋值才有意义。建造者模式利用导演者对象以及具体建造者对象,将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

设计模式 单例模式

单例模式的意思就是确保某个类的实例在系统中只有一个,可以简单概括为以下三点:

  1. 只能有一个类实例;
  2. 类必须自行创建这个实例;
  3. 类必须自行向整个系统提供这个实例。

设计模式 原则&分类

设计模式的主要目标在于保证程序的高可用及高扩展性,在实际开发中不应该过多地纠结使用哪种设计模式,而是应该多体会设计模式的原则,换言之,只要遵循一定的原则,这些所谓的模式完全可能在无意识的状态下自发出现在产品代码中。其实这些设计模式也都不是谁突然间硬想出来的,而是从大量实践中总结出来的比较好的组织代码结构的方式。

好的设计能够有效避免或者延缓程序架构的腐化,通常,很多程序结构一开始也许设计得还可以,但随着业务功能的不断扩展和变化,可能就不得不在结构上做出一些妥协让步,慢慢地也就失去了结构。

另外,在设计过程中也要注意避免过度设计,即为不可能发生的变动付出过多的复杂度代价。总之不要滥用设计模式,不要觉得一个地方有可能会变动,就忍不住考虑是否应该增加复杂度来换取灵活性。而要避免过度设计,关键在于能正确的预见变化,以及权衡所引入的复杂度相对于发生变化的可能性和破坏力是否值得,当然这些都需要一定的经验积累以及对业务的认识。

UML 关系图

在面向对象的设计中,类的关系涉及依赖、关联、聚合、组合和泛化这五种关系,耦合程度依次递增。