设计模式

面向对象的设计并不是一件很简单的事情,尤其是要设计出架构良好的软件系统更不容易。为了提高系统的复用性,需要进行一些额外的设计,定义类的接口,规划类的继承结构,建立类与类之间的关系。

设计模式的概念

  首先,设计模式解决的是一类问题,其次,设计模式是一种通用的解决方案,而不是具体的,也不是唯一的

设计模式的组成:

一般的,在描述一个设计模式时,至少需要包含四个方面:模式名称(Pattern name),问题)(problem),解决方案(Solution),效果(Consequence)。这四个方面就是设计模式的四要素。

GoF设计模式

  1. Factory Method模式:提供了一种延迟创建类的方法,使用这个方法可以在运行期由子类决定创建哪一个类的实例
  2. Abstract Factory模式,又称为抽象工厂模式,该模式主要为解决复杂系统中对象创建的问题。抽象工厂模式提供了一个一致的对象创建接口来创建一系列具有相似基类或相似接口的对象。
  3. Builder模式:类似于工厂模式,但Builder模式是逐步地构造出一个复杂对象,并在最后返回对象的实例。Builder模式可以把复杂对象的创建与表示分离,使得同样的创建过程可以创建不同的表示
  4. Prototype模式:可以根据原型实例制定创建的对象的种类,并通过深复制这个原型来创建新的对象。Prototype模式有着同 Abstract Factory 模式和 Builder
    模式相同的效果,不过当需要实例化的类是在运行期才被指定的而且要避免创建一个与产品曾是平行的工厂类层次的,可以使用Prototype模式。使用 Prototype 模式可以在运行时
    增加或减少原型,比 Abstract Factory 和 Builder 模式更加灵活。
  5. Singleton模式。使用Singleton模式可以保证一个类仅有一个实例,从而可以提供一个单一的全局访问点
  6. Adapter模式:可以解决系统间接口不相容的问题,通过Adapter可以把类的接口转化为客户程序所希望的接口,从而提高复用性
  7. Bridge模式:Bridge模式把类的抽象部分同实现部分相分离,这样类的抽象和实现都可以独立地变化。
  8. composite模式:提供了一种以数形结构组合对象的方法,使用composite可以使单个对象和组合后的对象具有一致性以提高软件的复用性。
  9. decorator模式:可以动态地为对象的某一个方法增加更多的功能。在很多时候,使用decorator模式可以不必继承出新的子类从而维护简洁的类继承结构。
  10. facade模式:为一组类提供了一致的访问接口。使用facade可以封装内部具有不同接口的类,使其对外提供统一的访问方式,facade模式在j2EE系统开发中发展为Session facade模式
  11. Flyweight模式:可以共享大量的细粒度对象,从而节省创建对象所需要分配的空间,不过在时间上的开销会变大
  12. Proxy模式:为对象提供了一种访问代理,通过对象Proxy可以控制客户程序的访问。例如:访问权限的控制,访问地址的控制,访问方式的控制,甚至可以通过Proxy将开销较大的访问化整为零,提高访问效率
  13. Interpreter模式:定义了一个解释器,来解释遵循给定语言和文法的句子
  14. Template Method模式:定义一个操作的模板,其中的一些步骤会在子类中实现,以适应不同的情况
  15. chain of Responsibility 模式:把可以响应请求的对象组织成一条链,并在这条对象链上传递请求,从而保证多个对象都有机会处理请求而且可以避免请求方和响应方的耦合
  16. Command模式,将请求封装为对象,从而增强请求的能力,如参数化,排队,记录日志等。
  17. Iterator模式 提供了顺序访问一个对象集合中的各个元素的方法,使用Iterator可以避免暴露集合中对象的耦合关系
  18. Mediator模式:可以减少系统中对象间的耦合性。mediator模式使用中介对象封装其他的对象,从而使这些封装的对象间的关系就成了送散耦合
  19. Memento 模式。Memento 模式提供了一种捕获对象状态的方法,且不会破坏对象的封装。并且可以在对象外部保存对象的状态,并在需要的时候恢复对象状态。
  20. Observer 模式。Observer 模式提供了将对象的状态广播到一组观察者的方式,从而可以让每个观察者随时可以得到对象更新的通知。
  21. State 模式。State 模式允许一个对象在其内部状态改变的时候改变它的行为。
  22. Strategy 模式。使用 Strategy 模式可以让对象中算法的变化独立于客户。
  23. Visitor 模式。表示对某对象结构中各元素的操作,使用 Visitor 模式可以在不改变各元素类的前提下定义作用于这些元素的新操作。

软件架构

常见的架构风格:分层架构,客户端---服务器架构,消息总线,面向服务的架构(SOA)

设计模式分类

面向对象设计中,需要解决的问题:如何管理系统中的对象,如何组织系统中的类与对象,系统中的类与对象如何相互通信。

提出了三类设计模式:创建型,结构性和行为型,这些设计模式分别解决了上面三个方面的问题。

创建型设计模式主要解决对象创建的问题。

     创建型模式通过采用抽象类所定义的接口,封装了系统中对象如何创建、组合等信息,其代表有Singleton模式等;

      结构型模式主要用于如何组合己有的类和对象以获得更大的结构,其代表有 Adapter 模式等;

      行为型模式主要用于对象之间的职责及其提供服务的分配方式,其代表有Visitor模式等。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值