浅谈六大设计原则

一、单一职责原则

一个类只负责完成一个职责或者功能。不要设计大而全的类,要设计粒度小、功能单一的类。单一职责原则是为了实现代码高内聚、低耦合,提高代码的复用性、可读性、可维护性。

二、开闭原则

对扩展开放、对修改关闭

具体理解:原来代码  一个告警规则 当前满足各种条件时进行告警行为

 

重构之后的代码

public class Alert { 
 private List<AlertHandler> alertHandlers = new ArrayList<>(); 
 public void addAlertHandler(AlertHandler alertHandler) { 
    this.alertHandlers.add(alertHandler); 
 } 

public void check(ApiStatInfo apiStatInfo) { 
 for (AlertHandler handler : alertHandlers) {
  handler.check(apiStatInfo); 
 }  

} 

} 
public class ApiStatInfo {
// 省略 constructor/getter/setter 方法
private String api; 
private long requestCount; 
private long errorCount; 
private long durationOfSeconds; 

} 


public abstract class AlertHandler { 
protected AlertRule rule; 
protected Notification notification; 
public AlertHandler(AlertRule rule, Notification notification) {
this.rule = rule; 
this.notification = notification; 
} 


public abstract void check(ApiStatInfo apiStatInfo); 
} 
public class TpsAlertHandler extends AlertHandler { 
public TpsAlertHandler(AlertRule rule, Notification notification) {
 super(rule, notification); 
} 
@Override 

public void check(ApiStatInfo apiStatInfo) { 
 long tps = apiStatInfo.getRequestCount()
 apiStatInfo.getDurationOfSeconds
 if (tps > rule.getMatchedRule(apiStatInfo.getApi()).getMaxTps()) { 
notification.notify(NotificationEmergencyLevel.URGENCY, "..."); 
} 
} 
} 
public class ErrorAlertHandler extends AlertHandler { 

public ErrorAlertHandler(AlertRule rule, Notification notification){ 
super(rule, notification); 
} 
@Override 
public void check(ApiStatInfo apiStatInfo) {
 if (apiStatInfo.getErrorCount() > rule.getMatchedRule(apiStatInfo.getApi()) 
notification.notify(NotificationEmergencyLevel.SEVERE, "..."); 
 } 
}
}

 

三、里氏替换原则

四、接口隔离原则

五、依赖倒置原则

六、迪米特法则

高类聚 松耦合 

什么是高类聚

什么是松耦合

定义:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值