定义设计模式
模式是在某种情境(context)下,针对某问题的某种解决方案。
情景:就是应用某个设计模式的场景。
问题:该情景遇到的问题。
解决方案:找到适合的设计模式。
模式使用功能描述
装饰者:包装一个对象,以提供新的行为。
状态:封装了基于状态的行为,并使用委托在行为之间切换。
迭代器:在对象的集合之间游走,而不是暴露集合的实现。
外观:简化一群类的接口。
策略:封装可以互换的行为。
代理:包装对象,以控制对此对象的访问。
工厂方法:由子类觉得要创建的具体类是哪一个。
适配器:封装对象,并不提供不同的接口。
观察者:让对象能在状态改变时被通知。
模板方法:由子类决定如何实现一个算法中的步骤。
组合:客户用一致的方式处理对象集合和单个对象。
单例:确保有且只有一个模式被创建。
抽象工厂:允许客户创建对象的家族,而无需指定他们的具体类。
命令:封装请求成为对象。
设计模式类目
创建型
什么时候用设计模式
当你遇到某一个场景,你应该想想或者翻下设计模式,看看你的场景是可以用哪种设计模式解决的。但是无论怎么解决,简单才是王道,别为了用设计模式而用设计模式。
不能过度的使用,初学者或者刚刚学完设计模式的人,很容易犯这个错误,一碰到某个问题就想套用设计模式,这样很容易导致代码过度设计,复杂,工程化,应该简单为主,或者重构时考虑设计模式。
建议
看优秀的代码,最好的方式是看自己公司的代码,结合这个业务场景为什么要用这种写法,优缺点是什么都思考一下,结合业务是最好的方式了。
如果觉得公司的代码写的不好🐶,那么看框架源码吧!Spring、Mybatis、Dubbo 都很优秀的!
并非一下子就能学会,还是要多看优秀的作品,多思考,大神也是这样过来的,要比别人优秀就要多花时间!!!共勉!💪💪💪