面向对象原则

面向对象编程包括封装、继承和多态等核心特性。接口和抽象类在不同语言中有不同的支持,如Java支持接口,C++支持抽象类。组合优于继承作为设计原则,有助于减少代码耦合。此外,文章还提到了设计原则,如单一职责原则(SRP)、开闭原则(OCP)和里氏替换原则(LSP)。
摘要由CSDN通过智能技术生成

面向对象

三种编程风格:面向对象、面向过程、函数式编程

四大特性:封装、抽象、继承、多态。

1.封装--信息隐藏或者数据访问保护---访问权限控制语法

类通过暴露有限的访问接口,授权外部仅能通过类提供的方式(或者叫函数)来访问内部信息或者数据。

2.继承---代码复用

3.多态---可拓展性和复用性

4.接口与抽象类的区别

python既不支持抽象类,也不支持接口。

C++支持抽象类,但不支持接口。

抽象类不允许被实例化(new),只能被继承,侧重于代码复用。(is-a)

接口不能包含属性(成员变量);接口只能声明方法,不能包含代码实现;类实现接口时必须实现接口声明的其他方法。(接口相当于一种协议,实现这个接口,就意味着他必须有这个功能),接口是对行为的一种抽象,接口更侧重于解耦。(has-a)

5.组合优于继承

6.泛化

public class A {
}


public class B extends A{
}

7.实现(接口)

接口是一种协议或者约定(规范),接口里面可以放公共静态常量。

public interface A {
}

public class B implements A{
}

8.聚合

一种包含关系

public class A {
    private B b;
    public A(B b){
        this.b=b;
    }
}

9.组合

关联关系包括聚合和组合关系。

public class A {
    private B b;
    public A(){
        this.b=new B();
    }
}

10.依赖

public class A {
   
    public void func(B b){
        
    }
}

11.单一职责原则(SRP)

什么时候不满足单一职责原则?

类中的代码行数(200)、函数或属性过多(10),会影响代码的可读性和可维护性;

私有方法过多。

类依赖的其他类过多,或者依赖其它类过多。

比较难给类起一个合适的名字。

类中大量的方法都是集中操作类中的某几个属性。

12.开闭原则(OCP)

对扩展开放,对修改关闭。

13.里氏替换原则(LSP)

按照协议进行设计。

1.子类违背父类声明要实现的功能。

2.子类违背父类对输入、输出、异常的约定。

3.子类违背父类注释中所罗列的任何特殊说明。

14.接口隔离原则

15.依赖反转原则

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值