软件复用有两类,一类是面向复用编程:开发出可复用的软件,另外一种是基于复用的编程:利用已有的复用软件搭建应用系统。
复用的级别分为:源代码级的复用、模块级别的复用、库级别的复用和系统级别的复用。
Liskov替换原则(LSP):简单的记为:更强的不变量、更弱的前置条件,更强的后置条件。
委托:委托是指一个对象请求另一个对象的功能,是复用的一种常见形式,可以用来代替继承。
委托分为Dependecy和Association两类。区别是后者通过固有的fied来建立delegation前者只是用方法参数来建立。
可维护性想要模块化编程,模块化编程的特点是:高内聚,低耦合。他的设计原则是SOLID,即:单一责任原则、开放封闭原则、Liskov原则、接口隔离原则、依赖倒置原则。
正则表达式:
设计模式有工厂模式、适配器模式、装饰器模式、策略模式、模板模式、迭代器模式、访问者模式。工厂模式是指创建一个实例,但是他有多个参数,通过接口来实现对不同参数的同一个函数调用。适配器模式是指我们的参数与需要我们输入的参数不匹配,我们通过写一个适配函数,将参数匹配化,然后再调用函数。装饰器模式是指,对每一个装饰,我们都写一个特有的函数来完成装饰,当需要多个装饰时,通过依次进行多个装饰,就可以实现这个操作了。策略模式时指对一类相近的操作,设置一个总的类,然后通过这个类对不同的操作进行细分,达到简化的效果。模板模式是指对一类相近的物品,将他们相同的rep统一起来建立一个class,然后再创建接口对他们进行特殊化,达到方便操作的目的。迭代器模式是指通过迭代的方式来完成操作。访问者模式是指通过重写同一访问者访问不同人的函数,达到简化程序的目的。
java异常的分类分为Error和Exception,Error和RuntimeException是unchecked,其他的是Checked的。checked类型的异常可以通过catch语句进行抓包,来找到出错的位置。
断言是在代码中嵌入,检查某些假设是否成立的,异常是前置条件的检测,断言是后置条件的检测。
防御式编程:对来自外部的数据要自习检查,对每个函数的输入参数要仔细检查,检查不安全的参数,判断他是否需要改为private类型。