java-设计模式.docx


立即下载 时间
2025-03-18
功能 消息 原则 product
1.8 MB

设计模式
前言
23种设计模式,学了很多次,每次都是学完就忘。
网上有很多形象的例子、代码、视频,但实现方式上,很难说抓住了精髓,而且还受制于java语言本身(比如,很难在运行时扩展程序,annotation只是一种静态的标识,要达到目的,还需要一套复杂的解析过程。或许可以考虑使用groovy)。
更优雅地使用设计模式,更切合实际情况地完成功能,才能在学习的过程中,真正地理解。那时候,才是真懂了。
设计原则
面向对象五个基本原则(SOLID)
S-单一职责原则
Single responsibility principle,又称为单一功能原则。
如果一个类负责多个功能,那么,要修改任何一个功能时,都会对这个类里的其他功能带来风险。
此原则的核心就是解耦和增强内聚性。
做一个发送消息的功能。消息的内容、格式大体相同,但推送方式有三种:短信、邮件、站内信。 其中, 短信 消息的标题、内容都需要合在一起,而且,尽量凝练,减少字数。不同的网关,发送的方式不同 邮件 针对不同的消息,可以使用不同的模板。比如:生日、嘉奖信等都有一套或多套模板,除了文字描述,还有图片、表格等。而且针对不同的邮箱,发送的协议也不同。 站内信 较自由的一种格式,就是普通的网页。但,由于web界面都是无状态的,需要定时刷新界面(或使用ajax刷新局部界面),推送消息
反模式
public class MessageService{ public void send(Object o){ … } }
三种消息都使用Object封装,看似面向对象,实际上,就是一锅粥。
O-开闭原则
Open for extension,Closed for modification
增加新功能时,现有的代码,对扩展开放,对修改封闭。
反模式
简单工厂模式。例如,创建产品的工厂类,当新增产品时,就需要修改工厂类。
示例代码
public IProduct getProduct(String name){ IProduct product = null;//接口或抽象类,都可以 switch(name){ case "A":product = new A();break; case "B":product = new B();break; } return product; }


功能/消息/ /原则/product/ 功能/消息/ /原则/product/
-1 条回复
登录 后才能参与评论
-->