zoukankan      html  css  js  c++  java
  • 学习java设计模式的必要性探讨

    1.设计模式是什么:设计模式为我们提供了一套可复用的面向对象技术,再配合重构方法,可以让我们避免简单重复的工作。它使用面向接口编程,而不是面向实现。可以说设计模式是java程序设计的灵魂。

    2.为什么要学设计模式:设计模式的引入可以降低代码的耦合性,增强代码的灵活性。

    3.怎么用java的设计模式:设计模式是一个大的类别,在java中,设计模式大的分为三类:创建模式,结构模式,行为模式。而没有个大类又可以分为很多小的类别。设计模式需要我们理解每种模式的应用场景,优劣势。并多看官方解释,多敲多练,就会慢慢有所领悟并学会使用。

    4.设计模式简介

      4.1.创建模式:

        4.1.1.工厂方法和抽象工厂(Factory):使用工厂模式就和使用new一样频繁。

        4.1.2.原型(prototype):使用原型模式指定创建对象的种类,并且通过copy这些原型创建新的对象。

        4.1.3.builder模式:汽车由车轮 方向盘 发动机很多部件组成,同时,将这些部件组装成汽车也是一件复杂的工作,Builder 模式就是将这两种情况分开进行。

        4.1.4.singleton单例模式:保证一个类只有一个实例,并提供一个访问它的全局访问点。

      4.2.结构模式:

        4.2.1.设计模式之 Facade:可扩展的使用 JDBC 针对不同的数据库编程,Facade 提供了一种灵活的实现.

        4.2.2.设计模式之 Proxy:以 Jive 为例,剖析代理模式在用户级别授权机制上的应用。

        4.2.3.设计模式之 Adapter:使用类再生的两个方式:组合(new)和继承(extends),这个已经在"thinking in java"中提到过

        4.2.4.设计模式之 Composite:就是将类用树形结构组合成一个单位.你向别人介绍你是某单位,你是单位中的一个元素,别人和你做买卖,相当于和单位做买卖。

        4.2.5.设计模式之 Decorator:Decorator 是个油漆工,给你的东东的外表刷上美丽的颜色.

        4.2.6.设计模式之 Bridge:"牛郎织女"分开(本应在一起,分开他们,形成两个接口),在他们之间搭建一个桥(动态的结合)

        4.2.7.设计模式之 Flyweight:提供 Java 运行性能,降低小而大量重复的类的开销.

      4.3.行为模式:

        4.3.1.设计模式之 Template:实际上向你介绍了为什么要使用 Java 抽象类,该模式原理简单,使用很普遍.

        4.3.2.设计模式之 Memento:很简单一个模式,就是在内存中保留原来数据的拷贝.

        4.3.3.设计模式之 Observer:介绍如何使用 Java API 提供的现成 Observer。

        4.3.4.设计模式之 Chain of Responsibility:各司其职的类串成一串,好象击鼓传花,当然如果自己能完成,就不要推委给下一个.

        4.3.5.设计模式之 Command:什么是将行为封装,Command 是最好的说明.

        4.3.6.设计模式之 State:状态是编程中经常碰到的实例,将状态对象化,设立状态变换器,便可在状态中轻松切换.

        4.3.7.设计模式之 Strategy:不同算法各自封装,用户端可随意挑选需要的算法.

        4.3.8.设计模式之 Mediator:Mediator 很象十字路口的红绿灯,每个车辆只需和红绿灯交互就可以.

        4.3.9.设计模式之 Interpreter:主要用来对语言的分析,应用机会不多.

        4.3.10.设计模式之 Visitor:访问者在进行访问时,完成一系列实质性操作,而且还可以扩展.

        4.3.11.设计模式之 Iterator:这个模式已经被整合入 Java 的 Collection.在大多数场合下无需自己制造一个Iterator,只要将对象装入Collection中,直接使用Iterator

    进行对象遍历。

     5.GoF 的《设计模式》是所有面向对象语言(C++ Java C#)的基础,只不过不同的语言将之实现得更方便地使用。GoF 的设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧,让你能够真正掌握接口或抽象类的应用,从而在原来的 Java 语言基础上跃进一步,更重要的是,GoF 的设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。

  • 相关阅读:
    HDU 2888 Check Corners (模板题)【二维RMQ】
    POJ 3264 Balanced Lineup(模板题)【RMQ】
    poj 3368 Frequent values(经典)【RMQ】
    SPOJ RPLN (模板题)(ST算法)【RMQ】
    UVA 796 Critical Links(模板题)(无向图求桥)
    UVA 315 Network (模板题)(无向图求割点)
    POJ 2029 Get Many Persimmon Trees (模板题)【二维树状数组】
    poj 3067 Japan 【树状数组】
    POJ 2481 Cows 【树状数组】
    POJ 1195 Mobile phones【二维树状数组】
  • 原文地址:https://www.cnblogs.com/g177w/p/8476161.html
Copyright © 2011-2022 走看看