微信号:javams

介绍:Java面试指南;最全最专业的面试题

设计模式(Design Pattern)

2015-12-16 22:54 it面试宝典

更多请关注 >>http://java.jr-jr.com

不理解的,就背诵下来吧。概率最大的,就是三种工厂的区别以及线程安全的单例。

  1. 1. 简单工厂

  2. 2. 工厂方法

  3. 3. 抽象工厂

  4. 4. 原型模式(Prototype)

  5. 5. 建造者(Builder)

  6. 6. 单例(Singleton)

  7. 7. Adapter

  8. 8. Proxy

  9. 9. Composite

  10. 10. Bridge

  11. 11. flyweight

  12. 12. Facade

  13. 13. Decorator

  14. 14. Memento

  15. 15. Command

  16. 16. 策略(Strategy)

  17. 17. 模板方法(TemplateMethod)

  18. 18. 观察者(Observer)

  19. 19. 迭代器(Iterator)

  20. 20. 职责链(Chain of Responsibility)

  21. 21. 中介者(Mediator)

  22. 22. 状态(State)

  23. 23. 访问者(Visitor)

简单工厂

Simple Factory,是由一个工厂对象决定创建出哪一种产品类的实例,是工厂模式家族中最简单实用的模式。

工厂方法

Factory Method,定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。为了遵循扩展开放,修改关闭原则,将简单工厂类转换为工厂方法接口,将其Switch分支分离成子类去继承工厂方法接口类,顺利的将创建对象的过程延迟到子类。

抽象工厂

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

原型模式(Prototype)

用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。

建造者(Builder)

将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

单例(Singleton)

保证一个类仅有一个实例,并提供一个访问它的全局访问点

Adapter

将一个类的接口转换为客户希望的另一个接口,Adapter模式使得原本由于接口不兼容而不能一起工作的那些类一起工作。

Proxy

为其他对象提供一种代理以控制对这个对象的访问。

Composite

将对象组合成树形结构以表示“部分——整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。

Bridge

将抽象部分与它的实现部分分离,使它们都可以独立地变化。

flyweight

运用共享技术有效的支持大量细粒度的对象。

Facade

为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

Decorator

动态的给一个对象添加额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。

Memento

在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将对象恢复到原先保存的状态

Command

将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。

策略(Strategy)

它定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。

模板方法(TemplateMethod)

定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

观察者(Observer)

定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。

迭代器(Iterator)

提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。

职责链(Chain of Responsibility)

使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,知道有一个对处理它为止。

中介者(Mediator)

用一个中介者对象来封装一系列的对象交互。中介者使各对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的关系

状态(State)

当一个对象内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。

访问者(Visitor)

表示一个作用于某对象结构中的个元素的操作。它使你可以在不改变各元素的类的前提下定义作用与这些元素的新操作。



版权声明(by lycying@gmail.com):

复制文章的时候,把这一段也复制上吧。这里是Java面试指南,最全最前沿的面试题。大部分信息来自网络和书籍,整理加工而成,也有不少部分是作者自己的观点,一字一字打的,总之,可随意转载。要是能保留链接,感激不尽。如果你不希望被转载的文章不幸出现在这里,请留言告诉我,我换种说法 :)

扫描下面的二维码,加入微信公众号,得到最新的资料:


 
it面试宝典 更多文章 (资源)SWAP的罪与罚 (转) Linux进程状态(ps stat)之R、S、D、T、Z、X 作为高级Java,你应该了解的Linux知识 LRU缓存就像你装破鞋的鞋柜,附实现攻略 java的long,天生的陷阱专家
猜您喜欢 中国电建携手IBM云 互联网+亮点几何? Dialog、Toast、Snackbar,你真的了解它们吗? Stack Overflow揭秘开发者15 个不为人知的秘密 看程序员如何用代码表现艺术天分 好书那么多,我想去看看!