设计原则
2016-02-29 00:00
218 查看
摘要: 后续会完善
一、面向对象分析和设计
1、伟大的软件的步骤:
1)确认你的软件做客户要它做的事。
2)运用基本的OO原则来增加软件的灵活性。
3)努力实现可维护、可重用的设计。
2、委托保护你的对象免受软件中其他对象实现改变的干扰。
3、每当你在两个或两个以上的地方找到共同行为时,小心地将该行为抽取到一个类里,然后以此共同类重用这项行为。
4、记住、你通常是因为行为有变化才创建子类。特征(属性)的变化是关系到封装。
5、当你有一组特性跨对象变化时,使用集合(collection),像Map,来动态存储那些特性。这样,你将从你的类中移除许多方法,并且在新特性被加入应用程序时避免改变你的程序代码。
6、具有内聚性的类,模块或者包善于处理好单一事情,但不会试着做其他事。
7、继承的替代方案:
委托:是将特定工作的责任委派给另一个类或方法。
组合:将来自其他多个类的行为集合起来,(相当与类的一个集合属性)。
当我们引用一整群的行为时,我们使用组合,
当你想要使用由接口所定义的行为,并且从该接口的种种实现中进行选择时,组合是最有威力的,不论是在编译期间还是在运行时。
组合让你使用来自一组其他类的行为,并且可以在运行时切换该行为。
在组合中,由其他行为所组成的对象拥有(own)那些行为。当对象被摧毁时,其所有行为也被摧毁。组合中的行为不存在于组合本身以外。
聚合:是当一个类被用作另一个类的一部分时,但仍然可以存在于该类之外,(相当于以参数形式传递进来)。
组合VS聚合:何时该使用组合,何时该使用聚合,是一件很容易让人困惑的事。把这件事弄清楚的最简单的方法即使问你自己:“这个我想使用其行为的对象存在于使用其行为的对象之外吗?”假如该对象(行为被使用的对象)确实独立存在,你应该使用聚合,假如不是的话,就选择组合。但是要小心!有时候,在对象使用中的轻微改变也会产生全然不同的结果。
一、面向对象分析和设计
1、伟大的软件的步骤:
1)确认你的软件做客户要它做的事。
2)运用基本的OO原则来增加软件的灵活性。
3)努力实现可维护、可重用的设计。
2、委托保护你的对象免受软件中其他对象实现改变的干扰。
3、每当你在两个或两个以上的地方找到共同行为时,小心地将该行为抽取到一个类里,然后以此共同类重用这项行为。
4、记住、你通常是因为行为有变化才创建子类。特征(属性)的变化是关系到封装。
5、当你有一组特性跨对象变化时,使用集合(collection),像Map,来动态存储那些特性。这样,你将从你的类中移除许多方法,并且在新特性被加入应用程序时避免改变你的程序代码。
6、具有内聚性的类,模块或者包善于处理好单一事情,但不会试着做其他事。
7、继承的替代方案:
委托:是将特定工作的责任委派给另一个类或方法。
组合:将来自其他多个类的行为集合起来,(相当与类的一个集合属性)。
当我们引用一整群的行为时,我们使用组合,
当你想要使用由接口所定义的行为,并且从该接口的种种实现中进行选择时,组合是最有威力的,不论是在编译期间还是在运行时。
组合让你使用来自一组其他类的行为,并且可以在运行时切换该行为。
在组合中,由其他行为所组成的对象拥有(own)那些行为。当对象被摧毁时,其所有行为也被摧毁。组合中的行为不存在于组合本身以外。
聚合:是当一个类被用作另一个类的一部分时,但仍然可以存在于该类之外,(相当于以参数形式传递进来)。
组合VS聚合:何时该使用组合,何时该使用聚合,是一件很容易让人困惑的事。把这件事弄清楚的最简单的方法即使问你自己:“这个我想使用其行为的对象存在于使用其行为的对象之外吗?”假如该对象(行为被使用的对象)确实独立存在,你应该使用聚合,假如不是的话,就选择组合。但是要小心!有时候,在对象使用中的轻微改变也会产生全然不同的结果。
相关文章推荐
- 厦门巨游网络科技有限公司(HOTPOWER)承接游戏UI外包
- 自适应网页设计的方法(手机端良好的访问体验)
- 拆解身份证的工具类
- 蜂窝教育iOS培训:认真对待每位学员
- JS通过时间控制页面样式
- C++多态性理解
- iOS知识树,知识目录(包括对象、Block、消息转发、GCD、运行时、runloop、动画、Push、KVO、tableview,UIViewController、提交AppStore)
- [C#解惑] #2 对象的初始化顺序
- C++多线程操作(火车售票系统线程同步)
- Android逆向笔记(3)--- dex文件Dalvik指令的解析
- c++中信息隐藏的实现
- Android客户端性能优化(魅族资深工程师毫无保留奉献)
- [微信开发利器]微信内移动前端开发抓包调试工具fiddler使用教程
- 一个简单的线程池实现
- Servlet 获取 post数据
- 知识海洋又缺了点水
- Oracle DataGuard远没有百度或Google写的那么简单
- Oracle Help Center
- Oracle® Database High Availability Best Practices
- 一张图见证手机进化