C++设计模式(一)四种法则

本文介绍了C++中的设计模式,包括GoF的23种模式及简单的工厂模式。文章聚焦于面向对象设计的四个核心原则:开闭原则、迪米特法则、依赖倒转原则和合成复用原则,阐述了这些原则如何提高代码的可维护性和复用性,并通过实例说明了它们的应用。
摘要由CSDN通过智能技术生成

软件设计模式的种类

GoF提出的设计模式有23个,包括:

创建型(Creational)模式: 如何创建对象;
结构型(Structural )模式: 如何实现类或对象的组合;
行为型(Behavioral)模式: 类或对象怎样交互以及怎样分配职责。

设计模式目前种类: GoF的23种 + “简单工厂模式” = 24种。

设计模式的基础是:多态

面向对象设计原则

面向对象设计原则为支持可维护性复用而诞生,这些原则蕴含在很多设计模
式中,它们是从许多设计方案中总结出的指导性原则。

原则的目的: 高内聚,低耦合

面向对象设计原创表

开闭原则

开闭原则对扩展开放,对修改源代码关闭。类的改动是通过增加代码进行的,而不是修改源代码
例子:计算器±*/,如需加入%取模运算,不需要修改之前的代码,只是添加代码

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
//开闭原则  对扩展开放,对修改关闭,增加功能是通过增加代码来实现,而不是去修改源代码

//写一个抽象类
class AbstractCaculator{
   
public:
	virtual int getResult() = 0;
	virtual void setOperatorNumber(int a, int b) = 0;
};

//加法计算器类
class PlusCaculator :public AbstractCaculator{
   
public:
	virtual void setOperatorNumber(int a, int b){
   
		this->mA = a;
		this->mB = b;
	}
	virtual int getResult(){
   
		return mA + mB;
	}
public:
	int mA;
	int mB;
};

//减法计算器
class MinuteCaculator :public AbstractCaculator{
   
public:
	virtual void setOperatorNumber(int a, int b){
   
		this->mA = a;
		this->mB = b;
	}
	virtual int getResult(){
   
		return mA - mB;
	}
public:
	int mA;
	int mB;
};

//乘法计算器
class MultiplyCaculator :public AbstractCaculator{
   
public:
	virtual void setOperatorNumber(int a, int b){
   
		this->mA = a;
		this->mB = b;
	}
	virtual int getResult(){
   
		return mA * mB;
	}
public:
	int mA;
	int mB;
};

//取模计算器  通过增加代码来实现
class ModulusCaculator :public AbstractCaculator{
   
public:
	virtual void setOperatorNumber(int a, int b){
   
		this->mA = a;
		this->mB = b;
	}
	virtual int getResult(){
   
		return mA % mB;
	}
public:
	int mA
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值