- 博客(10)
- 资源 (5)
- 收藏
- 关注
原创 [设计原则4] 依赖倒置原则--架构重用基础
定义:要依赖于抽象,细节要依赖于抽象,抽象不要依赖于细节,或者说高层模块不应该依赖于底层模块,两个都应该依赖于抽象。 同时依赖倒置原则也是架构重用的基础。
2014-01-10 22:15:36 988 1
原创 [设计原则3] LSP 里氏替换原则
LSP原则定义: 定义1:如果对每一个类型为 T1的对象 o1,都有类型为 T2 的对象o2,使得以 T1定义的所有程序 P 在所有的对象 o1 都代换成 o2 时,程序 P 的行为没有发生变化,那么类型 T2 是类型 T1 的子类型。 定义2:所有引用基类的地方必须能透明地使用其子类的对象。
2014-01-05 10:06:28 1082 1
原创 [设计原则2] 优先使用组合(续)
继承的优点和缺点优点: 容易进行新的实现,因为其大多数可继承而来。 易于修改或扩展那些被复用的实现。缺点: 破坏了封装性,因为这会将父类的实现细节暴露给子类。 “白盒”复用,因为父类的内部细节对于子类而言通常是可见的。 当父类的实现更改时,子类也不得不会随之更改。 从父类继承来的实现将不能
2014-01-02 09:43:35 648
原创 [设计原则2] 优先使用组合
人们在设计一组相关功能的类时,通常会线考虑继承的方式来设计,如人,老板,雇员类之间,通常会设计成老板和雇员继承自人,这种设计并不是最好的设计,因为老板跟雇员仅仅是一个人的一种角色,会随着是变化而变化,通常可以用组合设计,增加一个角色的抽象类,老板角色、雇员角色继承自角色类,然后人组合角色,一个人就可以扮演各种角色了。下面对组合和继承进行优缺点比较。
2014-01-02 09:34:25 1020
原创 [设计原则1]GRASP --高内聚低耦合
高内聚低耦合是职责分配原则的终极原则,前面的那些原则都是服务于高内聚低耦合这一基本原则。要提升自己的设计水平,需要基于这些设计原则来衡量,然后对已有代码不断优化,不断掌握其精髓。
2013-12-26 20:11:06 1524
原创 [设计原则1]GRASP 通用职责分配软件原则
设计原则-GRASP通用职责分配软件原则主要是解决那些功能职责放哪些类实现的问题,是讨论功能分配的问题,它介于分析和设计之间,是在类被识别之后,如何向类分配职责的的基本原则。当然在这个过程中也经常会产生新的类,或对已经识别的类做合并、抽象等。
2013-12-20 16:39:36 1218
原创 开篇—-面向对象的设计原则与设计模式
设计模式是前人总结的解决某特定场景的设计问题的方法,就像武学中的一招半式,说白一点就是解决某些问题的惯用法,人们也都把关于“重复发生的问题的描述和解决办法”统称为模式。 “模式”这个词是不局限于软件开发行业的,它几乎无处不在,它其实就是一种经验的积累,目前比较流行的是GOF的23种经典设计模式。 比设计模式更重要的是设计原则。如果说设计模式是武学的招式的话,那么
2013-12-19 09:05:28 658
原创 异步非阻塞开发模式的优越性
同步阻塞开发模式:1. 服务端启动监听;2. 接收到一个客户端连接时,申请一个线程处理(可以是线程池,也能是直接启动线程。)3.然后是接收请求(接受请求时,线程阻塞在这里),处理请求,如果需要依赖其他模块时,需要发送消息给其他系统。4. 接收其他系统的应答(发送请求和接收应答时会阻塞线程),然后处理应答,最后给客户端发送最后的应答(也会阻塞线程) 同步模式存在下面的问题
2013-12-15 15:42:00 4323 8
原创 还是喜欢C++
参加工作一晃快12年了,从没有写过博客,有工作太忙,太累的因素,主要还是因为自己比较懒,没有写博客的习惯。 以前经常看别人的博客,技能提升方面给我了不小的帮助,这些感谢那些无私奉献的博主们。 最近工作没那么忙了,突然想起写博客了,一来把一些所学技能总结一下,二来也希望能够给后面的软件人一些小小的帮助。 在这10多年中,主要从事的是软件编码、软件
2013-12-14 11:18:00 922 3
Linux/windows 字符串处理CString类
2013-12-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人