- 1、本文档共29页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
大话设计模式读书笔记
简单工厂模式
1、代码规范性
A、变量命名规范化
B、if语句逻辑清晰,单向分支逻辑判断应该避免使用重复的if判断
C、异常情况判断
2、面向对象编程
(1)面向对象编程优点:A、可维护 B、可复用 C、可扩展 D、灵活性好
(2)通过封装、继承、多态将程序耦合性降低,使用设计模式使程序更加灵活,易改,易复用
3、业务封装(将业务逻辑与界面逻辑分开)
(1) 低耦合:高必威体育官网网址,高易维护性。
(2) 简单工厂模式
以下为C#代码:
Public class OperationFactory
{
Public static Operation CreateOperate(string operate)
{
Operation oper = null;
Switch (operate)
{
Case “+”:
oper = new OperationAdd();
Break;
Case “-”:
Oper = new OperationSub();
Break;
Case “*”:
Oper = new OperationMul();
Break;
Case “/”:
Oper = new OperationDiv();
Break;
}
Return Oper;
}
}
(3) UML类图
*注:1、“动物”代表类
2、类分三层:第一层显示类的名称,如是抽象类,用斜体表示;
第二层是类的特性,即字段和属性;
第三层是类的操作,即方法和行为;
3、“+”表示public,“-”表示private,“#”表示protected
4、接口图顶部有interface标注,第一行是接口名称,第二行是接口方法。
5、继承关系用“△”和实线表示,子类指向父类,表示子类继承父类
6、实现接口使用“△”和虚线表示,实现类指向接口,表示类实现了接口
7、类与类关联关系用虚线相连
8、聚合关系(弱拥有关系,拥有者包含被拥有者,但被拥有者不是拥有者不可分割的一部分)使用“◇”+ 实线箭头(→)表示,聚合体指向单体,表示聚合体由单体聚合成。聚合体有基数概念,表示几个单体可以聚合成几个聚合体。
9、合成关系(强拥有关系,合成前体与合成体是严格的部分和整体的关系)使用“◆”+ 实线箭头(→)表示,合成体指向合成前体,表示合成体由合成前体合成。合成关系有基数概念,表示几个合成前体可以组合成几个合成体。
10、依赖关系,用虚线头“←……”表示,依赖主体指向依赖物,表示依赖主体依赖于依赖物。
策略模式
面向对象编程,并不是类越多越好,类的划分是为了封装,但分类的基础是抽象,具有相同属性和功能的对象的抽象集合才是类。
工厂模式的弊端:仅用于创建对象,对于不断变化的算法维护成本较高。
策略模式:定义了算法家族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化不会影响到使用算法的客户。
以下为C#代码:
//抽象算法类
Abstract class Strategy
{
//算法方法
Public abstract void AlgorithmInterface();
}
//具体算法A:
Class ConcreateStrategyA: Strategy
{
//算法A实现方法
Public override void AlgorithmInterface()
{
Console.WriteLine(“算法A实现”);
};
//具体算法B
………
}
//Context,用一个ConcreateStrategy类配置,维护一个对Strategy对象的引用。
//上下文
Class Context
{
Strategy Strategy;
Public Context(Strategy Strategy)//初始化时,传入具体的策略对象
{
This.strategy = strategy;
}
//上下文接口
Public void ContextInterface()//根据具体的策略对象,调用其他算法//的方法
{
Strategy.AlgorithmInterface();
}
}
//客户端代码
Static void Main(string[] args)
{
您可能关注的文档
最近下载
- 人工智能赋能中学化学教学的探索.pptx VIP
- 人教版地理七年级下册第七章第三节《印度》教学课件.pdf VIP
- 日本语:大家的日语(中级1)习题答案.pdf
- 文物建筑勘查设计取费标准2020年版(试行).pdf
- QC T 29092-92 汽车用暖风电动机技术条件.docx VIP
- 2025年重庆医药行业分析报告及未来五到十年行业发展趋势报告.docx
- 2023江苏农林职业技术学院高职单招语文/数学/英语笔试参考题库含答案解析.docx
- 《数理统计学(第2版)》习题答案及解题步骤.docx VIP
- 高耗能落后机电设备(产品)淘汰目录(第一二三四批)-全.pdf VIP
- 化学品安全技术说明书--氯气.docx VIP
文档评论(0)