- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
设计模式第二章
第二章 面向对象的几个基本原则 从一个小项目讲起 老张开车去东北 撞了 肇事司机耍流氓 跑了 好采一个东北人 送到医院缝五针 好了 老张请他吃顿饭 喝的少了他不干 他说........俺们那嘎都是东北人...俺们那嘎盛产高丽参...俺们那嘎猪肉炖粉条...俺们都是活雷锋...俺们那嘎没有这种人...撞了车哪能不救人... 俺们哪嘎山上有珍蘑...那个人他不是东北人 ...翠花 上酸菜 面向过程的思维 面向对象思维(Object Oriented) 考虑类 名词 考虑属性 不可脱离具体的应用环境 考虑方法 类间关系 封装(隐藏) 降低耦合度 继承 多态 作业 在代码的基础上,新增一个交通工具“哈利波特的魔法扫把(Broom)”,让司机“一路扫着土去东北” 尝试用面向对象的思维编写程序计算出母牛的个数 农场一头小母牛, 每年生头小母牛, 母牛五岁产母牛, 二十年上多少牛? 2.1 面向抽象原则 2.1 面向抽象原则 抽象类特点 可以有abstract方法,也可以有非abstract方法 不能通过new创建对象 非抽象类如果继承了一个抽象类,必须重写父类的abstract方法,重新声明、去掉abstract修饰符,同时保证声明的方法名称、返回类型、参数个数和类型与父类的abstract方法完全相同 作为上转型对象 2.1 面向抽象原则 接口特点 接口中只可以有public权限的abstract方法,不能有非abstract方法 接口由类去实现,类必须重写接口中的abstract方法,即将abstract方法重新声明,但必须去掉abstract方法中的修饰符,同时保证声明的方法名称、返回类型、参数个数和类型与接口中的方法完全相同 接口回调 2.2 开-闭原则 2.3 多组合,少继承 继承与复用 通过继承来实现复用的优点 子类可以重写父类的方法 通过继承来实现复用的缺点 编译时确定,运行期无法改变 子类与父类是强耦合关系 父类内部细节对于子类可见 2.3 多用组合,少用继承 通过组合复用的优点 “黑盒复用”:当前对象只能委托所包含的对象调用其方法 对象与所包含的对象属于弱耦合关系 可在运行时动态指定所包含的对象 2.3 高内聚-低耦合原则 * 广西经干院计算机系 设计一个类时,不让该类面向具体的类,而是面向抽象类或接口 。 public class Circle{ double r;Circle(double r){this.r=r;} public double getArea(){ return 3.14*r*r;}} public class Pillar{ Circle bottom; double height; Pillar(Circle bottom,double height){ this.bottom=bottom;this.height=height;}} 设计应当对扩展开放,对修改关闭。 如果您的设计遵守了“开-闭原则”,那么这个设计一定是易维护的,因为在设计中增加新的模块时,不必去修改设计中的核心模块。 如果类中的方法是一组相关的行为,则称该类是高内聚的,反之称为低内聚的。 所谓低耦合就是尽量不要让一个类含有太多的其它类的实例的引用,以避免修改系统的其中一部分会影响到其它部分。
原创力文档


文档评论(0)