什么是设计模式?(入门)

什么是设计模式?


  就是软件设计方法。在软件设计中,不可避免的要遇到一些设计上的问题,比如,有很多代码需要重复的写,比如代码维护比较困难,这个时候呢,某一些人,针对不同的问题总结了一套很好的方法能够很好的解决相应的问题,这一系列的方法就是“模式”。


设计模式的作用?

 

  设计模式是拥有多年开发设计经验的人给我们的经验传承,它是作为专家的建议而引入的,它背后的真正威力是其对真实世界的抽象。

  如果我们没有足够的经验,我们很难做出好的设计,但是富有经验的开发者和设计者以设计模式的形式将他们的经验传授给我们,拥有了这些经验之后,我们也能做出好的设计来了。不仅如此,设计模式还提高了我们软件复用的水平,从而提高了生产效率。

  通过研究这些模式,学习者可以相互交流,可以在自己的实践中举一反三,推陈出新,加以应用。

 

设计模式的原则?


1.单一职责原则:

  定义:就一个类而言,应该仅有一个引起他变化的原因。

  也就是说,不要把变化原因各不相同的职责放在一起,因为不同的变化会影响到不相干的职责。再通俗一点地说就是,不该你管的事情你不要管,管好自己的事情就可以了。


2.开放-封闭原则:

  定义:是说软件实体(类,模块,函数等)应该可以扩展,但是不可以修改。

  两个特性:对于扩展是开放的,对于更改是封闭的。

  面对需求,对程序的改动是通过增加新代码进行的,而不是更改现有的代码。(此原则的精神所在)

  开放-封闭原则是面对对象设计的核心所在。遵循这个原则可以带来面向对象技术所声称的巨大好处,也就是可维护,可扩展,可复用,灵活性好。开发人员应该仅对程序中呈现出频繁变化的那些部分做出抽象,然而,对于应用程序中的每个部分都刻意地进行抽象同样不是一个好主意。拒绝不成熟的抽象和抽象本身一样重要。

 

3.依赖倒转原则:

  定义:抽象不应该依赖细节,细节应该依赖于抽象。

  就是要针对接口编程,不要对实现编程。就是只有抽象的东西才是最稳定的,也就是说,我们依赖的是它的稳定。


4.里氏代换原则:

  一个软件实体如果使用的是一个父类的话,那么一定适用于其子类,而且它察觉不出父类对象和子类对象的区别。也就是说,在软件里面,把父类都替换成它的子类,程序的行为没有变化,简单说,子类型必须能够替换掉它们的父类型。

  因为这个原则,使得继承复用成为可能,只有当子类可以替换掉父类,软件单位的功能不受到影响时,父类才能真正被复用,而子类也可能够在父类的基础上增加新的行为。由于子类型的可替换性才使得使用父类类型的模块在无需修改的情况下就可以扩展。

 

 5.迪米特原则:(也叫最少知识原则)

  定义:如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。

  迪米特法则其根本思想,是强调了类之间的松耦合。类之间的耦合越弱,越有利于复用,一个处于弱耦合的类被修改,不会对有关系的类造成波及。

 

6.合成/聚合复用原则

  尽量使用合成/聚合,尽量不要使用类继承。

 

设计模式的种类?


创建型:

 

1.单件模式(Singleton Pattern)

 

2.抽象工厂(Abstract Factory)

 

3.建造者模式(Builder)

 

4.工厂方法模式(Factory Method)

 

5.原型模式(Prototype)

 

结构型:

 

6.适配器模式(Adapter Pattern)

 

7.桥接模式(Bridge Pattern)

 

8.装饰模式(Decorator Pattern)

 

9.组合模式(Composite Pattern)

 

10.外观模式(Facade Pattern)

 

11.享元模式(Flyweight Pattern)

 

12.代理模式(Proxy Pattern)

 

行为型

 

13.模板方法(Template Method)

 

14.命令模式(Command Pattern)

 

15.迭代器模式(Iterator Pattern)

 

16.观察者模式(Observer Pattern)

 

17.解释器模式(Interpreter Pattern)

 

18.中介者模式(Mediator Pattern)

 

19.职责链模式(Chain of Responsibility Pattern)

 

20.备忘录模式(Memento Pattern)

 

21.策略模式(Strategy Pattern)

 

22.访问者模式(Visitor Pattern)

 

23.状态模式(State Pattern)

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值