Javaのデザインパターンは(覚えやすい)仕上げ

パターン設計をはじめ
デザインパターン(デザインパターン)一般的に、経験豊富なオブジェクト指向のソフトウェア開発者によって使用されるベストプラクティスを表します。デザインパターンは、ソフトウェア開発プロセスにおけるソフトウェア開発者が直面する共通の問題への解決策です。これらのソリューションは、最大合計時間の長い期間のための試行錯誤を通じて、多くのソフトウェア開発者です。
デザインパターンの使用
2つの主な目的のためのソフトウェア開発におけるデザインパターン。
共通プラットフォームの開発者
デザインパターンは、標準的な用語のシステムを提供し、特定のシナリオに関する。すべてが単一のオブジェクトを使用することができますシングルトンデザインパターンの開発に精通している、とお互いにこのように言うことができるように例えば、シングルトンデザインパターンは、プログラムがシングルトンを使用して、単一のオブジェクトを使用することを意味します。
ベストプラクティス
デザインパターンは、時間の長い期間のために開発された、彼らは、ソフトウェア開発プロセスが直面する共通の問題に対する最善のソリューションを提供しています。これらの学習モードでは、ソフトウェアの設計を学ぶために迅速かつ簡単な方法を通じて、経験の浅い開発者を支援します。
タイプのデザインパターン
リファレンスデザインパターン  デザインパターン-再利用可能なオブジェクト-の要素指向ソフトウェア( 中国語の翻訳:デザインモード-オブジェクト指向ソフトウェア要素、再利用可能)は  、23個のデザインパターンの合計を述べました。これらのパターンは、次の3つのカテゴリに分けることができる:スキーマ(生成に関するパターン)、構造モデル(構造パターン)、モデル(行動パターン)のタイプを作成します。J2EEデザインパターン:もちろん、私たちは、デザインパターンの別のタイプを説明します。

いいえ。

モード&解説

それは、

1

作成したスキーマのデザインパターンではなく、new演算子を直接インスタンス化されたオブジェクトを使用するのでは、論理オブジェクトを作成すると同時に、隠れて作成する方法を提供します。オブジェクトが特定のインスタンスのために作成される必要があるかを決定するときに、このプログラムはより柔軟になります。

ファクトリパターン(Factoryのパターン)オブジェクトを作成するためのインタフェースを定義ししかし、サブクラス1つのクラスインスタンス化するファクトリメソッドは、クラスのインスタンスがサブクラスに延期できるようにします     

Abstract Factoryパターン(柄抽象工場の)インターフェースを提供し 関連または依存オブジェクトのファミリーを作成するために特定のクラスを指定せず

Singletonパターン(シングルトンパターン)クラスのインスタンスを1つだけ確保 およびグローバル・アクセス・ポイントを提供

ビルダーモード(パターンビルダー)発電機モードカプセル化プロセスの製品構成を用いてプレス工程を可能にするように構成されている構築物およびその分離は、複雑なオブジェクトを表し同じ構成プロセスが異なる表現を作成することができるようにします

プロトタイプモデル(原型パターン)指定されたクラスのプロセス・インスタンスを作成する非常に高価な場合や複雑でプロトタイプモデルの使用に

2

構造モデルのデザインパターンのクラスとオブジェクトの組み合わせに関するものです。継承の概念は、インタフェースオブジェクトの新しい特徴の組み合わせの組み合わせを定義するために使用されます。

アダプタモード(アダプタパターン)クラスのインタフェースは クライアントが期待する別のインターフェースに変換されるクラス間の元のコラボレーションができるように、アダプタは、インターフェイスと互換性がありませんアダプタ組み合わせオブジェクトクラスアダプタは、複数の継承を使用し

ブリッジモード(パターン・ブリッジ)使用ブリッジモードは、異なる2によって達成されるように独立して変更、および抽象クラス階層の中ですることができます

フィルタパターン(フィルタ、パターン条件)このモードは、のようにして論理演算を介してそれらを接続するデカップリング、開発者は、オブジェクトのセットをフィルタリングするために異なる基準を使用することを可能にします。デザインパターンのこのタイプは、単一の標準を得るために、基準の複数を組み合わせた構造モデルを、属します。 

コンバインモード(合成パターン)はあなたが表現するために、ツリー構造にオブジェクトを結合することを可能にする全体/ 一部階層コンビネーションは、個々のオブジェクトとそれらの組み合わせに対処するための一貫した方法で顧客を可能にします

デコレータ(Decoratorパターン)オブジェクトに取り付けられた動的責任機能を拡張するためにより多くを継承するように、可撓性の代替を提供することで飾ら

外观模式(Facade Pattern): 提供了一个统一的接口, 用来访问子系统中的一群接口. 外观定义了一个高层接口, 让子系统更容易使用.

享元模式(Flyweight Pattern): 如想让某个类的一个实例能用来提供许多"虚拟实例", 就使用蝇量模式.

代理模式(Proxy Pattern): 为另一个对象提供一个替身或占位符以控制对这个对象的访问

3

行为型模式
这些设计模式特别关注对象之间的通信。

责任链模式(Chain of Responsibility Pattern): 通过责任链模式, 你可以为某个请求创建一个对象链. 每个对象依序检查此请求并对其进行处理或者将它传给链中的下一个对象

命令模式(Command Pattern): "请求"封闭成对象, 以便使用不同的请求,队列或者日志来参数化其他对象. 命令模式也支持可撤销的操作.

解释器模式(Interpreter Pattern): 使用解释器模式为语言创建解释器.

迭代器模式(Iterator Pattern): 提供一种方法顺序访问一个聚合对象中的各个元素, 而又不暴露其内部的表示

中介者模式(Mediator Pattern): 使用中介者模式来集中相关对象之间复杂的沟通和控制方式.

备忘录模式(Memento Pattern): 当你需要让对象返回之前的状态时(例如, 你的用户请求"撤销"), 你使用备忘录模式.

观察者模式(Observer Pattern): 在对象之间定义一对多的依赖, 这样一来, 当一个对象改变状态, 依赖它的对象都会收到通知, 并自动更新.

状态模式(State Pattern): 允许对象在内部状态改变时改变它的行为, 对象看起来好象改了它的类

空对象模式(Null Object Pattern): 在空对象模式(Null Object Pattern)中,一个空对象取代 NULL 对象实例的检查。Null 对象不是检查空值,而是反应一个不做任何动作的关系。这样的 Null 对象也可以在数据不可用的时候提供默认的行为。

策略模式(Strategy Pattern): 定义了算法族, 分别封闭起来, 让它们之间可以互相替换, 此模式让算法的变化独立于使用算法的客户.

模板模式(Template Pattern): 在一个方法中定义一个算法的骨架, 而将一些步骤延迟到子类中. 模板方法使得子类可以在不改变算法结构的情况下, 重新定义算法中的某些步骤

访问者模式(Visitor Pattern): 当你想要为一个对象的组合增加新的能力, 且封装并不重要时, 就使用访问者模式.

4

J2EE 模式
这些设计模式特别关注表示层。这些模式是由 Sun Java Center 鉴定的。

MVC 模式(MVC Pattern): MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式。这种模式用于应用程序的分层开发

业务代表模式(Business Delegate Pattern) :用于对表示层和业务层解耦。它基本上是用来减少通信或对表示层代码中的业务层代码的远程查询功能

组合实体模式(Composite Entity Pattern) :用在 EJB 持久化机制中。一个组合实体是一个 EJB 实体 bean,代表了对象的图解。当更新一个组合实体时,内部依赖对象 beans 会自动更新,因为它们是由 EJB 实体 bean 管理的。以下是组合实体 bean 的参与者。

数据访问对象模式(Data Access Object Pattern):用于把低级的数据访问 API 或操作从高级的业务服务中分离出来。以下是数据访问对象模式的参与者。

前端控制器模式(Front Controller Pattern):是用来提供一个集中的请求处理机制,所有的请求都将由一个单一的处理程序处理。该处理程序可以做认证/授权/记录日志,或者跟踪请求,然后把请求传给相应的处理程序。

拦截过滤器模式(Intercepting Filter Pattern)用于对应用程序的请求或响应做一些预处理/后处理。定义过滤器,并在把请求传给实际目标应用程序之前应用在请求上。过滤器可以做认证/授权/记录日志,或者跟踪请求,然后把请求传给相应的处理程序

服务定位器模式(Service Locator Pattern)用在我们想使用 JNDI 查询定位各种服务的时候。考虑到为某个服务查找 JNDI 的代价很高,服务定位器模式充分利用了缓存技术。在首次请求某个服务时,服务定位器在 JNDI 中查找服务,并缓存该服务对象。当再次请求相同的服务时,服务定位器会在它的缓存中查找,这样可以在很大程度上提高应用程序的性能

传输对象模式(Transfer Object Pattern)用于从客户端向服务器一次性传递带有多个属性的数据。传输对象也被称为数值对象。传输对象是一个具有 getter/setter 方法的简单的 POJO 类,它是可序列化的,所以它可以通过网络传输。它没有任何的行为。服务器端的业务类通常从数据库读取数据,然后填充 POJO,并把它发送到客户端或按值传递它。对于客户端,传输对象是只读的。客户端可以创建自己的传输对象,并把它传递给服务器,以便一次性更新数据库中的数值


这些模式可以分为三大类:创建型模式(Creational Patterns)、结构型模式(Structural Patterns)、行为型模式(Behavioral Patterns)。J2EE 设计模式。

下面用一个图片来整体描述一下设计模式之间的关系:

这些模式可以分为三大类:创建型模式(Creational Patterns)、结构型模式(Structural Patterns)、行为型模式(Behavioral Patterns)。当然,我们还会讨论另一类设计模式:J2EE 设计模式。

下面用一个图片来整体描述一下设计模式之间的关系:

设计模式之间的关系


设计模式的六大原则

1、开闭原则(Open Close Principle)

开闭原则的意思是:对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。简言之,是为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点。

2、里氏代换原则(Liskov Substitution Principle)

里氏代换原则是面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。LSP 是继承复用的基石,只有当派生类可以替换掉基类,且软件单位的功能不受到影响时,基类才能真正被复用,而派生类也能够在基类的基础上增加新的行为。里氏代换原则是对开闭原则的补充。实现开闭原则的关键步骤就是抽象化,而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。

3、依赖倒转原则(Dependence Inversion Principle)

这个原则是开闭原则的基础,具体内容:针对接口编程,依赖于抽象而不依赖于具体。

4、接口隔离原则(Interface Segregation Principle)

这个原则的意思是:使用多个隔离的接口,比使用单个接口要好。它还有另外一个意思是:降低类之间的耦合度。由此可见,其实设计模式就是从大型软件架构出发、便于升级和维护的软件设计思想,它强调降低依赖,降低耦合。

5、迪米特法则,又称最少知道原则(Demeter Principle)

最少知道原则是指:一个实体应当尽量少地与其他实体之间发生相互作用,使得系统功能模块相对独立。

6、合成复用原则(Composite Reuse Principle)

合成复用原则是指:尽量使用合成/聚合的方式,而不是使用继承。




详细内容(菜鸟)传送门:http://www.runoob.com/design-pattern/design-pattern-intro.html





おすすめ

転載: blog.csdn.net/GX_BUG/article/details/72764678