23种设计模式:

**意义:**使代码走的更远,更强大,更安全,更加有体系,更加符合人类思考的一些方式。

面向对象软件设计SOLID原则:

单一职责原则(Single responsibility principle):一个类或者模块只负责完成一个职责。

开闭原则(Open-closed principle):对修改关闭,对拓展开放。

添加一个功能应该是在已有的代码的基础上进行扩展,而不是修改已有的代码。

里氏替换原则(Liskov substitution principle):子类对象能够替换程序中父类对象出现的任何地方,并且保证原来程序的逻辑行为不变及正确性不被破坏。一般利用多态。

接口隔离原则(Interface segregation principle):客户端不应该强迫依赖它不需要的接口

依赖倒置原则(Dependency inversion principle):高层模块(调用者)不要依赖低层模块(被调用者),高层模块和低层模块应该通过抽象来相互依赖。除此之外,抽象不要依赖具体实现细节,具体实现细节依赖抽象。

创建型模式:

单例模式:

23种设计模式(未完待续)
23种设计模式(未完待续)

饿汉式模板:

23种设计模式(未完待续)

懒汉式模板:

23种设计模式(未完待续)

DCL懒汉式模板:

23种设计模式(未完待续)

改进的懒汉式模板:

23种设计模式(未完待续)

**以上:

23种设计模式(未完待续)

枚举模板:

23种设计模式(未完待续)

工厂模式:

23种设计模式(未完待续)

23种设计模式(未完待续)

23种设计模式(未完待续)

23种设计模式(未完待续)

无工厂的时候(顾客自己买的时候也需要自己造):

23种设计模式(未完待续)

23种设计模式(未完待续)
23种设计模式(未完待续)
23种设计模式(未完待续)

23种设计模式(未完待续)

简单工厂模式:

23种设计模式(未完待续)

弊端:增加一种车型,也需要改变工厂的代码,不满足开闭原则

建工厂(工厂负责生产车):

23种设计模式(未完待续)

顾客通过工厂来买车,不需要关心车的生产:

23种设计模式(未完待续)

工厂方法模式:

工厂的接口:

23种设计模式(未完待续)

特斯拉的工厂:

23种设计模式(未完待续)

五菱的工厂:

23种设计模式(未完待续)

顾客找相应的车的车厂买:

23种设计模式(未完待续)

抽象工厂模式:

23种设计模式(未完待续)

23种设计模式(未完待续)

建手机接口:

23种设计模式(未完待续)

建路由器接口:

23种设计模式(未完待续)

实现小米手机:

23种设计模式(未完待续)

实现华为手机:

23种设计模式(未完待续)

实现小米路由器:

23种设计模式(未完待续)

实现华为路由器:

23种设计模式(未完待续)

建工厂接口:

23种设计模式(未完待续)

建小米工厂:

23种设计模式(未完待续)

建华为工厂:

23种设计模式(未完待续)

顾客:

23种设计模式(未完待续)

建造者模式:

23种设计模式(未完待续)

定义抽象的建造者:

23种设计模式(未完待续)

定义产品:

23种设计模式(未完待续)

定义具体的建造者:

23种设计模式(未完待续)

指挥者:

23种设计模式(未完待续)

测试:

23种设计模式(未完待续)

23种设计模式(未完待续)

原型模式(克隆):

原型的类需要实现Cloneable接口,在重写clone()方法。

原型对象调clone()方法得到新的对象。

克隆出来的新对象,与原型对象内容(值)相同,但是hashcode不同(两个不同对象)。

浅克隆(两个对象指向同一个date)暗星:

23种设计模式(未完待续)

23种设计模式(未完待续)
23种设计模式(未完待续)
原型对象属性date的值改变, 克隆对象的属性date的值也会改变。

指向同一个date。

23种设计模式(未完待续)

深克隆:

把原型类中的重写的clone()方法改变(把它的引用类型属性也进行克隆):

23种设计模式(未完待续)

23种设计模式(未完待续)

两个对象指向了不同的date。原型对象的属性date改变,不会影响克隆对象的属性date的值。

23种设计模式(未完待续)

结构型模式:

23种设计模式(未完待续)

适配器模式:

23种设计模式(未完待续)

23种设计模式(未完待续)

23种设计模式(未完待续)

23种设计模式(未完待续)

23种设计模式(未完待续)

23种设计模式(未完待续)

1.用继承(类适配器)网线方式写适配器:

23种设计模式(未完待续)

1.1补全客户端类(电脑)

23种设计模式(未完待续)

2.用组合(对象适配器:常用)方式写适配器:

23种设计模式(未完待续)

2.1补全客户端类(电脑)

23种设计模式(未完待续)

代理模式:

23种设计模式(未完待续)

静态代理:

23种设计模式(未完待续)

23种设计模式(未完待续)

租房这件事:

23种设计模式(未完待续)

房东:

23种设计模式(未完待续)

代理(中介):

23种设计模式(未完待续)

顾客:

23种设计模式(未完待续)

代理还可以有一些自己的方法(自己能干的事):

23种设计模式(未完待续)

顾客改为:

23种设计模式(未完待续)

动态代理:

23种设计模式(未完待续)

23种设计模式(未完待续)

23种设计模式(未完待续)

照样可以给代理增加一些自己的方法:

23种设计模式(未完待续)

形成万能的动态代理模板:

23种设计模式(未完待续)

桥接模式:

在一个维度扩展,而不影响另外一个维度。

23种设计模式(未完待续)

23种设计模式(未完待续)

23种设计模式(未完待续)

先引入多继承结构:

23种设计模式(未完待续)

转化为这种桥接模式(有两个维度),方便扩展。

23种设计模式(未完待续)

23种设计模式(未完待续)

23种设计模式(未完待续)

23种设计模式(未完待续)

23种设计模式(未完待续)

23种设计模式(未完待续)

将两种维度连接在一起:

23种设计模式(未完待续)

23种设计模式(未完待续)

装饰者模式:

23种设计模式(未完待续)

23种设计模式(未完待续)

23种设计模式(未完待续)

23种设计模式(未完待续)

23种设计模式(未完待续)

创建抽象的装饰器,实现组件接口。

23种设计模式(未完待续)

添加第一个装饰类,需继承装饰器。

23种设计模式(未完待续)

测试:

23种设计模式(未完待续)

再添加第二个装饰类,继承装饰器

23种设计模式(未完待续)

测试:

23种设计模式(未完待续)

23种设计模式(未完待续)

相关文章: