学习设计模式 应用场景记录

[b][color=blue]学习设计的一点心得:[/color][/b]
对于一个还未完全撑握设计模式的我,我的办法是遇到问题时,先简单按照自己的想法实现,然后再拿设计模式对比,改进。这样在遇到问题寻找解决办法的过程中就会加深解决问题后的愉悦感,你以后都不会忘记这个问题是如何解决的了。正所谓 痛的越狠,记的越深!

面向对象设计基础原则:
1、单一职责 原则(SRP:[b][color=red]S[/color][/b]ingle [b][color=red]R[/color][/b]esponsibility [b][color=red]P[/color][/b]rinciple);
2、开-闭 原则(OCP:[b][color=red]O[/color][/b]pen - [b][color=red]C[/color][/b]lose [b][color=red]P[/color][/b]rinciple)
封装共同点,剥离变化点;就实现了开放/封闭原则。
3、里氏替换 原则(LSP:[b][color=red]L[/color][/b]iskov [b][color=red]S[/color][/b]ubsitution [b][color=red]P[/color][/b]rinciple)
4、依赖倒置 原则(DIP:[b][color=red]D[/color][/b]ependence [b][color=red]I[/color][/b]nversion [b][color=red]P[/color][/b]rinciple)
5、接口隔离 原则(ISP:[b][color=red]I[/color][/b]nterface [b][color=red]S[/color][/b]egregation [b][color=red]P[/color][/b]rinciple)


[table]
|模式名称|简介|适用场景|jdk 中|备注
|[url=http://www.iteye.com/topic/26455]工厂模式[/url]||||解决创建类对象的时机问题|
|单例|||System 、Runtime、ThreadLocal 这些类为全局提供唯一的对象||
|装饰模式||游戏开发中,某角色所具备的能力,随着级别的升高,技能也随着增加。|i/o 流||
|外观模式(facade)|意图是:为了给子系统中的一组接口提供一个一致的界面;其定义了一个高层接口,方便子系统各模块的使用|如:客服系统,用户想要咨询的服务,有可能分步在不同的子系统中,这时你不能要求用户打进来的电话一会转这边一会转那边。提供一个统一的界面给用户,这样更方便和合理。|集合类Collections|为复杂子系统提供一个简单的接口|
||||||
||||||
||||||
|模板方法模式||把不变的行为转移到超类中,以去除子类中重复的代码|java ee HttpServlet类中的service 方法,就是个模板方法 |这是抽象类的一种典型的应用,区别与接口的应用;抽象类着重代码实现的重用性,接口重点在系统设计时定义行为(契约)|
||||||
[/table]








[url=http://damoqiongqiu.iteye.com/blog/1949256]mvc 为什么不是设计模式[/url]:简单的说就是,mvc是三种设计模式的演进,mvc 是一种架构方式!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值