一:什么是设计模式?
设计模式(Design pattern),代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。
二:为什么要用设计模式?
设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性
三:生活中有哪些常用设计模式?
其实设计模式最早应用于建筑行业,针对不同地理位置,不同环境,采用不同建筑方式,生病了,先看西医控制症状,然后中医调理,改变生活习惯,这也是一个常用的设计模式!
四:常用设计模式详解
1:单例模式:
有整个应用程序只需要一个对应的对象,避免不同线程读取对象信息不一致,就需要采用单例模式
举例:配置文件对象
2:策略模式:
就像一个游戏角色可以装备不同的武器,就拥有不同技能,策略模式通过内部属性绑定不同对象获取相对于的方法
3:代理模式:
代理模式是一个面向切面的编程思想,例如权限控制,日志输出,通过代理实现可以避免代码耦合
4:观察者模式:
当某个条件发生变化时候,需要通知关注者时候就可以采用观察者模式,例如mysql的物化视图
5:装饰模式:
通过对一个对象的包装 产生新的一个对象,然后拥有新的方法,例如java字符流对象转字节流
6:工厂模式
定义好一个对象的实例化方式,当对象实例化需要啊改变时候,只需要改变工厂生产方式即可,
spring IOC采用工厂模式反射生产配置的bean
五:设计模式遵守的“设计模式”
1:单一职责原则(Single Responsibility Principle, SRP):一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。
2:开闭原则(Open-Closed Principle, OCP):一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。
3:里氏代换原则(Liskov Substitution Principle, LSP):所有引用基类(父类)的地方必须能透明地使用其子类的对象。
4:依赖倒转原则(Dependency Inversion Principle, DIP):抽象不应该依赖于细节,细节应当依赖于抽象。换言之,要针对接口编程,而不是针对实现编程。在引入抽象层后,系统将具有很好的灵活性,在程序中尽量使用抽象层进行编程,而将具体类写在配置文件中,这样一来,如果系统行为发生变化,只需要对抽象层进行扩展,并修改配置文件,而无须修改原有系统的源代码,在不修改的情况下来扩展系统的功能,满足开闭原则的要求
5:接口隔离原则(Interface Segregation Principle, ISP):使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口。
网友评论