文章列表
依赖反转(DIP) 依赖反转: Dependency Inversion Principle 高层模块不要依赖底层模块,高层模块和底层模块应该通过抽象相互依赖,抽象不要依赖具体细节,具体细节依赖抽象,调用层属于高层,被调用层属于低层,有点想基于接口而非实现编程,不是还是有点区别的,目的不一样 Hig
接口隔离(ISP) 接口隔离(Interface Segregation Principle): 业务类继承的api接口,方法,真实接口 。中不能有用不到的操作 Clients should not be forced to depend upon interfaces that they do n
里式替换(LSP) 里式替换(Liskov Substitution Principle): 子类对象能够替换程序中父类对象出现的地方,并且保证原来程序的逻辑行为不变以及正确性不被破坏 Functions that use pointers of references to base classes
开闭原则(OCP) 开闭原则(Open Closed Principle):软件实体(模块,类,方法等)应该对拓展开放,对修改关闭 software ebtities(modules,classes,function,etc.)should be open for extension,but clo
单一职责(SRP) 单一职责(Single Responsibility Principle) 一个类只负责一个模块或者一个功能 其中类是否单一职责很多时候都是跟业务有关系的,比如 public class UserInfo { private long userId; private St
贫血模型与充血模型 贫血模型:只包含数据,不包含业务逻辑的类设计 充血模型:数据与业务不分离的类设计 在后端中,贫血模型写的非常顺手,service层中service类暴露方法与逻辑业务,BO只包含数据,破坏了面向对象的封装性,service会比较重,很多SQL语句无法重用,满天飞,不适合复杂业务
继承还是组合 继承的好处:复用与多态 缺点:继承过多导致代码易读性差,维护性差,可以考虑使用组合+接口+委托实现继承的优点,复用与多态。 有一种情况必须用继承,没有权限修改父类方法,需要使用继承重写。 如果继承嵌套只有一两层,并且后期改动不太大可以安心用继承 后期感觉需求改动大最好使用组合
抽象类与接口 抽象类:可以定义方法和属性,和抽象方法,仅支持继承,不支持实例化,表示一种has-a的关系,方便复用代码,和增强类的拓展性,强制继承的类实现抽象方法 接口:可以定义抽象方法和常量,仅支持实现,不支持实例化,表示一种has-a的关系,抽出接口,方便使用者关心使用而不是具体实现,增强实现的
面向对象编程写的面向过程代码 在面向对象语言中,我们很容易写出面向过程代码 1.比如get,set方法,很多时候,我们直接用IDE生成这部分代码,这是十分忌讳的,与面向对象的封装相违背,有的属性我们时不能给set权限的,还有list容器等不能给get权限,以免用到这个类的程序员私自修改容器对象造成b
面向过程编程与面向对象编程 面向对象编程是一种编程范式或编程风格。它以类或对象作为组织代码的基本单元,并将封装、抽象、继承、多态四个特性,作为代码设计和实现的基石 。 面向对象编程语言是支持类或对象的语法机制,并有现成的语法机制,能方便地实现面向对象编程四大特性(封装、抽象、继承、多态)的编程语言
这就是我
文章
分类
访问量
建站天数
标签目录
最近评论