设计模式概述
什么是设计模式
设计模式是前辈对开发代码经验的总结,是解决待定问题的一系列套路。他不是语法规定,而是一套来提高代发复用性,可维护性,可读性,稳健性以及安全性的解决方案
一共有23种设计模式简称GOF23
学习设计模式的意义
设计默模式的本质是面向对象设计原则的实际运用是对类的封装,继承和多态以及类的关联关系和组合关系的充分理解
正确使用设计模式具有一下优点
-
提高开发程序员的思维能力,编程能力和设计能力
-
是程序设计更加标准化,代码编制更加工程化,是软件开发效率大大提高,从而缩短软件的开发周期
-
使设计的代码重用性更高,可读性更强,灵活性更好,维护性强
设计模式的基本要素
-
模式的名称
-
问题
-
解决方案
-
效果
GOF23
创建型模式:
单例模式,工厂模式,抽象工厂模式,建造者模式,原型模式
结构型模式
适配器模式,桥接模式,装饰模式,组合模式,外观模式,享元模式,代理模式
行为型模式:
模板方法模式,命令模式,迭代器模式,观察者模式,中介者模式,备忘录模式,解释器模式,状态模式,策略模式,职责链模式,访问模式
面向对象的七大原则
开闭原则:对扩展开放,对修改关闭(在需求发生改变时尽量不修改原有的代码,而是扩展代码)
里氏替换原则:继承必须确保超类所拥有的性质在子类中仍成立(确保父类所拥有的的性质在子类中仍然成立,经量不要改变父类原有的功能)
依赖倒置原则:要面向接口编程,不要面向实现编程(高层的模块不应该依赖底层的模块)
单一职责原则:控制类的粒度大小,将对象解耦,提高其内聚性(尽量一个方法干一件事情)
接口隔离原则:要为各个类建立他们需要的专用接口(将接口拆分为更小更具体的接口)
迪米特法则:只与你的直接朋友交谈,不和陌生人说话(降低程序耦合度)
合成复合原则:尽量先使用组合或聚合等关联关系来实现,其次才考虑继承关系来实现(优先使用组合和聚合)
模式
作用:
-
实现了创建者和调用者的分离
-
详细分类:
-
简单工厂模式
-
工厂方法模式
-
抽象工厂模式
-
核心本质:
-
实例化对象不使用new,用工厂方法代替
-
选则实现类,创建对象统一管理和控制。从而将调用者更我们解耦合
三种模式:
-
简单工厂模式
-
用于生产同一等级结构的的任意产品
-
-
工厂方法模式
-
用来生产统一等级结构的固定产品
-
-
抽象工厂模式
-
围绕一个超级工厂创建其他工厂,该超级工厂又称为其他工厂的工厂
-