1.设计原则:前人根据项目经验总结出一套开发项目的规则。
1.1:单一职能原则:一个类只对外提供一种功能。
作用:方便分工合作,每个类只专注自己业务。
1.2:里氏替换原则:所有子类出现的地方都可以用父类替换。
作用:提高程序可扩展性和可维护性。
1.3:依赖倒置原则:能依赖于抽象的就不依赖于具体。
作用:提高程序可扩展性和可维护性。
1.4:迪米特原则:低耦合,高内聚(降低类与类之间的依赖性,提高类的独立性)。
耦合度:依赖性。
内聚性:独立性。
1.5:开闭原则:所有程序对扩展开放,对修改关闭。
1.6:接口隔离原则:一个接口只被设计一种功能。
使用:提高接口的灵活性和扩展性。
2.设计模式:前人根据项目经验总结出对特定问题一种特定解决方案。
2.1:单例模式:一个类一生只有一个对象。
作用:减少创建对象所产生系统开销。
使用:私有化构造方法,声明私有的静态对象,声明公有静态方法获得对象
2.1.1:饿汉式的单例模式:缺点:相对来说虚资源。
eg:/**
* 饿汉式的单例模式
* @author sx
* @version 1.0 2019年7月16日
*/
public class King1 {
private String kname;
private int wifeCount;
/**
* 私有构造方法
*/
private King1() {
}
/**
* 私有静态对象
*/
private static King1 k1=new King1();
/**
* 公有静态的方法获得对象
* @return King1
*/
public static King1 getKing() {
return k1;
}
public String getKname() {
return kname;
}
public void setKname(String kname) {
this.kname = kname;
}
public int getWifeCount() {
return wifeCount;
}
public void setWifeCount(int wifeCount) {
this.wifeCount = wifeCount;
}
}
2.1.2:懒汉式的单例模式:缺点:在多线程中使用不安全。为了解决安全问题,可以用线 程同步。
eg:/**
* 懒汉式的单例模式
* @author sx
* @version 1.0 2019年7月16日
*/
public class King2 {
private String kname;
private int wifeCount;
/**
* 私有构造方法
*/
private King2() {
}
/**
* 私有静态对象
*/
private static King2 k2;
/**
* 公有静态的方法获得对象
* @return King1
*/
public synchronized static King2 getKing() {
if (k2==null) {
k2=new King2();
}
return k2;
}
public String getKname() {
return kname;
}
public void setKname(String kname) {
this.kname = kname;
}
public int getWifeCount() {
return wifeCount;
}
public void setWifeCount(int wifeCount) {
this.wifeCount = wifeCount;
}
}
2.2:装饰者模式:用一个新类作为装饰者类,将原有的类作为装饰都类的属性,重写原有类的方法或者扩展方法,使原有类的功能更强大。
作用:增强原有类的功能。
使用:声明一个类,让这个类与原来需要装饰的类实现相同的接口或者继承相同的类,将原来需要装饰的类的对象作为新类的属性用构造方法传过来,重写原需要装饰的类方法使其功能更加强大。