没有合适的资源?快使用搜索试试~ 我知道了~
面向对象设计原则
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 103 浏览量
2022-11-20
21:07:48
上传
评论
收藏 170KB PPT 举报
温馨提示
试读
31页
面向对象设计原则,面向对象设计原则课件,面向对象设计原则PPT
资源推荐
资源详情
资源评论
面
面
向
向
对
对
象
象
设
设
计
计
原
原
则
则
OO Principles
OO Principles
体
体
系
系
结
结
构
构
和
和
依
依
赖
赖
性
性
设
设
计
计
正
正
在
在
“
“
腐
腐
烂
烂
”
”
的
的
征
征
兆
兆
过
过
于
于
僵
僵
硬
硬
Rigidity
Rigidity
过
过
于
于
脆
脆
弱
弱
不
不
可
可
重
重
用
用
性
性
粘
粘
滞
滞
性
性
过
过
高
高
开
开
放
放
关
关
闭
闭
原
原
则
则
(OCP)
(OCP)
A module should be open for extension but
A module should be open for extension but
closed for modification.
closed for modification.
一
一
个
个
模
模
块
块
应
应
该
该
只
只
在
在
扩
扩
展
展
的
的
时
时
候
候
被
被
打
打
开
开
(
(
暴
暴
露
露
模
模
块
块
内
内
部
部
)
)
,
,
在
在
修
修
改
改
的
的
时
时
候
候
是
是
关
关
闭
闭
的
的
(
(
模
模
块
块
是
是
黑
黑
盒
盒
子
子
)
)
OCP-
OCP-
动
动
态
态
多
多
态
态
性
性
struct
struct
Modem
Modem
{
{
enum
enum
Type {
Type {
hayes
hayes
,
,
courrier
courrier
,
,
ernie
ernie
)
)
type;
type;
};
};
struct
struct
Hayes
Hayes
{
{
Modem::Type
Modem::Type
type;
type;
// Hayes related stuff
// Hayes related stuff
};
};
struct
struct
Courrier
Courrier
{
{
Modem::Type
Modem::Type
type;
type;
//
//
Courrier
Courrier
related stuff
related stuff
};
};
struct
struct
Ernie
Ernie
{
{
Modem::Type
Modem::Type
type;
type;
// Ernie related stuff
// Ernie related stuff
};
};
void
void
LogOn(Modem
LogOn(Modem
&
&
m,string
m,string
&
&
pno
pno
, string& user,
, string& user,
string&
string&
pw
pw
)
)
{
{
if (
if (
m.type
m.type
==
==
Modem::hayes
Modem::hayes
)
)
DialHayes((Hayes&)m
DialHayes((Hayes&)m
,
,
pno
pno
);
);
else if (
else if (
m.type
m.type
==
==
Modem::courrier
Modem::courrier
)
)
DialCourrier((Courrier&)m
DialCourrier((Courrier&)m
,
,
pno
pno
);
);
else if (
else if (
m.type
m.type
==
==
Modem::ernie
Modem::ernie
)
)
DialErnie((Ernie&)m
DialErnie((Ernie&)m
,
,
pno
pno
)
)
// ...you get the idea
// ...you get the idea
}
}
OCP-
OCP-
动
动
态
态
多
多
态
态
性
性
class Modem
class Modem
{
{
public:
public:
virtual void
virtual void
Dial(const
Dial(const
string&
string&
pno
pno
) = 0;
) = 0;
virtual void
virtual void
Send(char
Send(char
) = 0;
) = 0;
virtual char
virtual char
Recv
Recv
() = 0;
() = 0;
virtual void
virtual void
Hangup
Hangup
() = 0;
() = 0;
};
};
void
void
LogOn(Modem
LogOn(Modem
&
&
m,string
m,string
&
&
pno
pno
, string& user,
, string& user,
string&
string&
pw
pw
)
)
{
{
m.Dial(pno
m.Dial(pno
);
);
// you get the idea.
// you get the idea.
}
}
剩余30页未读,继续阅读
资源评论
文档优选
- 粉丝: 88
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- pta题库答案c语言之排序4统计工龄.zip
- pta题库答案c语言之树结构7堆中的路径.zip
- pta题库答案c语言之树结构3TreeTraversalsAgain.zip
- pta题库答案c语言之树结构2ListLeaves.zip
- pta题库答案c语言之树结构1树的同构.zip
- 基于C++实现民航飞行与地图简易管理系统可执行程序+说明+详细注释.zip
- pta题库答案c语言之复杂度1最大子列和问题.zip
- 三维装箱问题(Three-Dimensional Bin Packing Problem,3D-BPP)是一个经典的组合优化问题
- 以下是一些关于Linux线程同步的基本概念和方法.txt
- 以下是一个简化的示例,它使用pygame库来模拟烟花动画的框架.txt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功