java设计模式总结

简介: java设计模式总结

设计模式按照"四人帮"的分类一共分为三种。

创建型模式

东西(类)是怎么创建出来的。

Abstract Factory

Bulider

Factory Method

Prototype

Singleton

结构型模式

主要是类与类之间的结构。

Adapter

Bridge

Composite

Decorator

Facade

Flyweight

Proxy

行为型模式

主要是类的动作。

Chain of Responsibility

Command

Interpreter

Iterator

Mediator

Memento

Observer

State

Strategy

Template Method

Visitor

对于上面这些设计模式,你应该可以做到知道这些设计模式典型的使用场景,以及整个模型的类图。

面向对象的六大原则

指导思想

可维护性Maintainability

修改功能,需要改动的地方越少,可维护性越好。

可复用性Reusability

代码可以被以后重复使用

写出自己总结的类库

可扩展性Extensibility/Scalability

添加功能时无需修改原先的代码

灵活性flexibility/mobility/adaptability

代码的接口可以灵活调用

①单一职责原则

Single Responsibility Principle

一个类别太大,功能不要太多,负责单一的职责

比如,一个person类就包括人的属性就可以了,不要涉及到他的管理。

高内聚,低耦合

②开闭原则

Open-Closed Principle

对扩展开放,对修改关闭

尽量不修改原来代码的情况下进行扩展

抽象化,多态是开闭原则的关键

需要替换添加新功能时,扩展子类并且加入原代码中就可以了

③里氏替换原则

Liscoy Substitution Principle

所有使用父类的地方,必须能够透明的使用子类对象。子类可以完全替代父类。

新建一个对象时,可以new这个对象的类,也可以new这个对象的子类。子类从父类继承,重载父类的接口,改变原来接口的语意,这时候就不符合里氏替换原则了。

④依赖倒置原则

Dependency Inversion Priciple

依赖倒置原则:

依赖抽象,而不是依赖具体

面向抽象编程

⑤接口隔离原则

Interface Segregation Principle

每一个接口应该承担独立的角色,不干不该自己干的事情

Flyable Runnable不该合二为一。如果他俩合二为一,当一个子类只想实现Runnable时,他还必须去实现Flyable接口,使用十分不方便。spring设计模式参考http://www.wityx.com/post/240_1_1.html

避免子类实现不需要实现的方法

需要对客户提供接口的时候,只需要暴露最小的接口。不要暴露他不要的接口,不然对客户造成干扰会很麻烦。

⑥    迪米特法则

Law of Demeter

尽量不要和陌生人说话

在迪米特法则中,对于    一个对象,非陌生人包括以下几类:

当前对象本身(this)

以参数形式传入到当前对象方法中的对象

当前对象的成员对象

如果当前对象的成员对象是一个集合,那么集合中的元素也都是朋友

当前对象所创建的对象

和其他类的耦合度变低

相关文章
|
1天前
|
设计模式 存储 安全
Java设计模式:组合模式之透明与安全的两种实现(七)
Java设计模式:组合模式之透明与安全的两种实现(七)
11 0
|
1天前
|
设计模式 Java
Java设计模式:深入装饰器模式的三种写法(六)
Java设计模式:深入装饰器模式的三种写法(六)
5 0
|
1天前
|
设计模式 Java Android开发
Java设计模式:适配器模式的三种形式(五)
Java设计模式:适配器模式的三种形式(五)
6 0
|
1天前
|
设计模式 Java
Java设计模式:建造者模式之经典与流式的三种实现(四)
Java设计模式:建造者模式之经典与流式的三种实现(四)
4 0
|
1天前
|
设计模式 Java
Java设计模式:工厂模式之简单工厂、工厂方法、抽象工厂(三)
Java设计模式:工厂模式之简单工厂、工厂方法、抽象工厂(三)
6 2
|
1天前
|
设计模式 SQL 安全
Java设计模式:单例模式之六种实现方式详解(二)
Java设计模式:单例模式之六种实现方式详解(二)
11 3
|
1天前
|
设计模式 算法 Java
Java设计模式:核心概述(一)
Java设计模式:核心概述(一)
9 2
|
1天前
|
设计模式 Java
Java设计模式之建造者模式详解
Java设计模式之建造者模式详解
|
1天前
|
设计模式 Java
Java设计模式之适配器模式详解
Java设计模式之适配器模式详解
|
1天前
|
设计模式 Java
Java设计模式之桥接模式详解
Java设计模式之桥接模式详解