可修改型战术

Posted on 2020-03-04 23:41  咳咳你  阅读(263)  评论(0编辑  收藏  举报

可修改型战术:

    可修改性战术就是致力于解决是否可以更加快速、安全的修改系统模块的方法,在设计模式上也最大程度的对应了单一职责原则。当我们设计代码时,就要做到对系统所有模块的代码分析,使类与类之间的耦合度降低,避免修改一个模块而波及到其他的模块造成的不便。 

    可修改性大致分为:

 

 

 

一.局部化修改:

      1.预期期望变更:连接数据库代码,Dao层的代码,前端页面设计代码等进行分开编写,最大程度使变更影响达到最小

 

 

 

  2.维持语义一致性  

    降低模块依赖性,不用或少用继承关系,多使用专用的借口来限制对相关服务的修改

  3.泛华模块

   数据库连接语句

 

   4.限制选择参数

   将软件系统限制在具体操作系统上运行,避免修改:如苹果store里的默认应用无法在安卓下载使用

二、防止连锁反应

   1.信息隐藏

    数据库代码模块隔离,不会影响其他模块

   2.维持现有接口

   多使用具体的接口来实现相应的工作:如官网教学系统,老师与学生的调用系统接口不一致

public interface Volume {   
 public abstract double getVolume();

}

public class Cylinder extends Circle implements Volume{    
    double h;
 public Cylinder(double r,double h){
  super(r);
  this.h=h;  
 } 
 public double getArea(){   
  return h*getL()+2*getS();
 }

   3.限制通信路径

   4.使用仲裁者

   使用外部数据库存储数据

三、推迟绑定时间

   1.运行时注册

   在绝大多数网站的使用上,都加入了进行关键操作是要注册用户的指示

    2.配置文件

   利用数据库配置文件,启动时设置数据库连接参数 

1 <?xml version="1.0" encoding="UTF-8"?>
 2 <Context>
 3 
 4 <!-- 定义数据源-->
 5 
 6 <!-- 
 7     name:指定Resource的JNDI名字
 8     auth:指定管理Resource的Manager,有两个可选值,Container表示由容器来创建和管理Resource
 9          Application表示由Web应用来创建和管理Resource
10     type:指定Resource所属的Java类名
11     
12     username:数据库用户名  password:连接数据库的口令
13     driverClassName:指定连接数据库的JDBC驱动器中的Driver实现类的名字
14     url:指定数据库的URL
15 
16 注意:如果url中用到useSSL=true/false,则需要在所有的'&'后面加上"amp;"如下
17  -->
18     <Resource name="jdbc/BookDB" auth="Container" type="javax.sql.DataSource"
19         username="root" 
20         password="Cz123"
21         driverClassName="com.mysql.jdbc.Driver"
22         url="jdbc:mysql://localhost:3306/Books?characterEncoding=utf8&amp;useSSL=true"/>
23 
24 </Context>