设计模式怎么解决设计问题

1.寻找合适的对象,如何将现实世界种的对象抽象出来,或者找出现实世界中不存在的对象,这步将直接导致后面设计的好坏。因为如果不能找到合适的对象,那么你的设计又将在哪里呢?
2.决定对象的粒度
尽量将粒度细化到最小,比如你认为4个轮子的是汽车,那如果出现了8个轮子的汽车那将怎么办呢?
3.将对象通用的操作定义为接口,比如麻雀和大雁可以定义出鸟类接口,而且都有飞的操作。
4.描述对象的实现
即你怎么去拿到你想要的对象,不管用什么手段和方法。
5.设计应支持变化
1) 通过显式地指定一个类来创建对象在创建对象
2) 对特殊操作的依赖
3) 对硬件和软件平台的依赖
4) 对对象表示或实现的依赖
5) 算法依赖
6) 紧耦合
7) 通过生成子类来扩充功能
8) 不能方便地对类进行修改
可复用面向对象编程原则:
1.针对接口编程,而不是针对实现编程
当你不得不去拿到具体的实现时,已经有一些设计模式帮你解决这个问题,比如abstract factory,builder等等
2.优先使用对象组合,而不是类继承
2、1当你使用子类的时候,必然会依赖于父类,当父类变更的时候,必然影响到子类
组合要求对象遵守彼
此的接口约定,进而要求更仔细地定义接口,而这些接口并不妨碍你将一个对象和其他对象
一起使用。
2.2对象组合对系统设计还有另一个作用,即优先使用对象组合有助于你保持每个类被封装,
并被集中在单个任务上。这样类和类继承层次会保持较小规模,并且不太可能增长为不可控
制的庞然大物。另一方面,基于对象组合的设计会有更多的对象(而有较少的类),且系统的行
为将依赖于对象间的关系而不是被定义在某个类中。
理想的情况下,我们可以利用组合获取所有想要的组件。
2.3委托是对象组合的特例。它告诉你对象组合作为一个代码复用机制可以替代继承。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值