月光博客 网站模板,wordpress iphoto,网页微信能不能传文件,你做我评网站会自动查论文相似度吗一#xff1a;设计模式的分类 设计模式#xff08;Design pattern#xff09; 是解决软件开发某些特定问题而提出的一些解决方案也可以理解成解决问题的一些思路。通过设计模式可以帮助我们增强代码的可重用性、可扩充性、 可维护性、灵活性好。我们使用设计模式最终的目的是…一设计模式的分类 设计模式Design pattern 是解决软件开发某些特定问题而提出的一些解决方案也可以理解成解决问题的一些思路。通过设计模式可以帮助我们增强代码的可重用性、可扩充性、 可维护性、灵活性好。我们使用设计模式最终的目的是实现代码的高内聚和低耦合。
总体来说设计模式分为三大类 创建型模式共五种工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式共七种适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式共十一种策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
二、创建模式5种 对象实例化的模式创建型模式用于解耦对象的实例化过程。 工厂方法模式一个工厂类根据传入的参量决定创建出哪一种产品类的实例。 抽象工厂模式创建相关或依赖对象的家族而无需明确指定具体类。 单例模式某个类智能有一个实例提供一个全局的访问点。 建造者模式封装一个复杂对象的创建过程并可以按步骤构造。 原型模式通过复制现有的实例来创建新的实例。
三结构型模式7种 把类或对象结合在一起形成一个更大的结构。 适配器模式将一个类的方法接口转换成客户希望的另一个接口。 装饰器模式动态的给对象添加新的功能。 代理模式为其它对象提供一个代理以便控制这个对象的访问。 外观模式对外提供一个统一的方法来访问子系统中的一群接口。 桥接模式将抽象部分和它的实现部分分离使它们都可以独立的变化。 组合模式将对象组合成树形结构以表示“部分-整体”的层次结构。 享元模式通过共享技术来有效的支持大量细粒度的对象。
四行为型模式11种 类和对象如何交互及划分责任和算法。 策略模式定义一系列算法把他们封装起来并且使它们可以相互替换。 模板方法模式定义一个算法结构而将一些步骤延迟到子类实现。 观察者模式对象间的一对多的依赖关系。 迭代器模式一种遍历访问聚合对象中各个元素的方法不暴露该对象的内部结构。 责任链模式将请求的发送者和接收者解耦使的多个对象都有处理这个请求的机会。 命令模式将命令请求封装为一个对象使得可以用不同的请求来进行参数化。 备忘录模式在不破坏封装的前提下保持对象的内部状态。 状态模式允许一个对象在其对象内部状态改变时改变它的行为。 访问者模式不改变数据结构的前提下增加作用于一组对象元素的新功能。 中介者模式用一个中介对象来封装一系列的对象交互。 解释器模式给定一个语言定义它的文法的一种表示并定义一个解释器。
五、设计模式的几种原则
1、单一职责原则 对于一个类只有一个引起该类变化的原因该类的职责是唯一的且这个职责是唯一引起其他类变化的原因。
2、接口隔离原则 客户端不应该依赖它不需要的接口一个类对另一个类的依赖应该建立在最小的接口上。
3、依赖倒转原则 依赖倒转原则是程序要依赖于抽象接口不要依赖于具体实现。简单的说就是要求对抽象进行编程不要对实现进行编程这样就降低了客户与实现模块间的耦合。
4、里式代换原则 任何基类可以出现的地方子类一定可以出现。里氏代换原则是继承复用的基石只有当衍生类可以替换基类软件单位的功能不受影响时基类才能真正的被复用而衍生类也能够在基类的基础上增加新的行为。里氏代换原则是对开闭原则的补充。实现开闭原则的关键步骤就是抽象化。而基类与子类的继承关系就是抽象化的具体实现所以里氏代换原则是对实现抽象化的具体步骤的规范。
5、开闭原则 1对于扩展是开放的Open for extension。这意味着模块的行为是可以扩展的。当应用的需求改变时我们可以对模块进行扩展使其具有满足那些改变的新行为。也就是说我们可以改变模块的功能。 2对于修改是关闭的Closed for modification。对模块行为进行扩展时不必改动模块的源代码或者二进制代码。模块的二进制可执行版本无论是可链接的库、DLL或者.EXE文件都无需改动。
6、迪米特法则 迪米特法则又叫做最少知识原则就是说一个对象应当对其它对象又尽可能少的了解不和陌生人说话。
7、合成复用原则 合成复用原则要求在软件复用时要尽量先使用组合或者聚合等关联关系来实现其次才考虑使用继承关系来实现。如果要使用继承关系则必须严格遵循里氏替换原则。合成复用原则同里氏替换原则相辅相成的两者都是开闭原则的具体实现规范。