时间:2021-05-20
1.单一职责原则每一个类负责一个职责(一个类只有一个方法)
2.里氏替换原则所有引用基类的地方都能透明的使用其子类的对象。
问题来了:
比如原来
class A{ fun();//完成P1功能 }现在需要添加新功能
class B extends A{//A的子类B实现了fun的功能) fun();完成功能为P(原来的P1功能加上新增的P2功能) }则,在子类B完成新功能P2的时候可能会导致原有功能P1发生故障
解决办法
当使用继承的时候,除了添加新的方法来完成新功能P2之外,尽量不要重写父类A的方法,也尽量不要重载父类A 的方法
3.依赖倒置原则(核心思想,面向接口编程)
定义:高层模块不应该以来底层模块,二者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象;
问题:
类A(高层模块)直接依赖B(低层模块)
eg:class A{ public void fun(B b){}; }现在想要把类A的依赖改为C,则必须修改类A的代码为
eg:class A{ public void fun(C c){}; }解决办法:
类B和类C都实现接口Interface D;
类A依赖接口D
eg:class A{ public void fun(D d){}; }这样在使用类A的fun方法时可以这样使用fun(new B());或者fun(new C());
4.接口隔离原则
将臃肿的接口才氛围独立的几个接口,这样子类在实现该接口时就不必要实现臃肿接口的所有的抽象方法
5.迪米特法则(最少知道法则)
降低类与类之间的耦合度,从而减少当一个类改变时对另一个类造成的影响。
简单来说,就是一个类对自己以来的类知道的越少越好。对于被以来的类,无论逻辑多么复杂,尽可能的将逻辑封装在类的内部,对外提供一个public的方法就行了。
更简单的定义:至于直接的朋友(称出现成员变量、方法参数、方法返回值中的类为直接朋友,出现在局部变量中的类不是直接的朋友)进行通信。
(依赖的三种方式,方法参数,局部变量-方法内的变量,静态变量-方法中调用某个类的静态方法)
6.开闭原则
一个软件实体类、模块、和函数应该对扩展开放,对修改关闭。
问题:当软件升级维护时,队友俺有代码进行修改,可能会给旧代码引入错误。
解决办法:当软件需要变化时,尽可能通过扩展软件实体的行为来实现变化,儿不是通过修改已有的代码来实现变化。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
单例模式Singleton简单实例设计模式解析前言今天我来全面总结一下Android开发中最常用的设计模式-单例模式。关于设计模式的介绍,可以看下我之前写的:1
Java对Properties文件的操作简介在Java中,我们常用java.util.Properties.Properties类来解析Properties文件
这篇文章主要介绍了Java设计模式模板方法模式(Template)用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
23种设计模式第四篇:java单例模式定义:单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只
java单例模式单例模式是一种常用的软件设计模式。在它的可信结构中只包含一个被实例化单例的特殊类。通过单例设计模式可以把整系统中的一个类只有一个实例。单例设计模