面向对象23种设计模式

1. 设计模式定义

  设计模式(Design Patterns) 是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应,每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是它能被广泛应用的原因。

2. 设计模式分类

  广泛的认知中,面向对象的设计模式总共分为23种,其中又可归纳为3个大类型:创建型模式(5种)、结构型模式(7种)、行为型模式(11种)。

2.1. 创建型模式

  创建型模式共5种,分别是工厂方法模式、抽象工厂模式、单例模式、建造者模式以及原型模式。

2.2. 结构型模式

  结构型模式共7种,分别是适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式以及享元模式。

2.3. 行为型模式

  行为型模式共11种,分别是策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

3. 设计模式六大原则

3.1. 开放闭合原则(Open-Closed Principle,OCP)

  软件实体应该是可扩展,而不可修改的。开放封闭原则主要体现在两个方面:对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况;对修改封闭,意味着类一旦设计完成,就可以独立完成其工作,而不要对类进行任何修改。

3.2. 接口隔离原则(Interface Segregation Principle,ISP)

  一个类对另外一个类的依赖性应当是建立在最小的接口上的。不要强迫客户使用它们不用的方法,如果强迫用户使用它们不使用的方法,那么这些客户就会面临由于这些不使用的方法的改变所带来的改变。

3.3. 单一职责原则(Simple Responsibility Principle,SRP)

  一个类,只有一个引起它变化的原因。也就是说,它只有单一的职责,避免一个类承担的职责过多,否则就等同于把这些职责耦合在一起了,这会导致脆弱的设计,当一个职责发生变化时,可能会影响其它的职责。其核心就是解耦和增强内聚性。

3.4. 最少知识原则 (Least Knowledge Principle,LKP)

  也称迪米特法则,一个软件实体应当尽可能少的与其他实体发生相互作用。每一个软件单位对其他的单位都只有最少的知识,而且局限于那些与本单位密切相关的软件单位。

3.5. 里氏替换原则(Liskov Substitution Principle,LSP)

  子类可以扩展父类的功能,但不能改变父类原有的功能。具体体现为:
   1)子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。
   2)子类中可以增加自己特有的方法。
   3)当子类的方法重载父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。
   4)当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。

3.6. 依赖倒置原则(Dependence Inversion Principle,DIP)

  高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值