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:装饰者模式:用一个新类作为装饰者类,将原有的类作为装饰都类的属性,重写原有类的方法或者扩展方法,使原有类的功能更强大。 作用:增强原有类的功能。 使用:声明一个类,让这个类与原来需要装饰的类实现相同的接口或者继承相同的类,将原来需要装饰的类的对象作为新类的属性用构造方法传过来,重写原需要装饰的类方法使其功能更加强大。