精华内容
下载资源
问答
  • 之前在写我程序人生过程中,很多网友都希望我介绍一些编程开发方面经验。我之前也说过,虽然我也算...本文我就想从系统功能设计方面简要介绍一下自己的一些思路和模式,也希望能够对大家起到抛砖引玉作用。如
           之前在写我的程序人生的过程中,很多网友都希望我介绍一些编程开发方面的经验。我之前也说过,虽然我也算计算机专业科班出身,不过很多东西并不是在学校里从老师那里学来的,而是在工作中经过失败后总结出来的。至于总结出来的是不是最好的,最适合的,那就不知道了。我只知道在我目前的系统开发过程中,还是有一定作用的。本文我就想从系统功能设计方面简要介绍一下自己的一些思路和模式,也希望能够对大家起到抛砖引玉的作用。如果您有更好的方法,请务必留言赐教。
    

     1、系统设计目标

            封装性:高内聚,低耦合

                    对模块进行封装,便于重用,模块变化产生的影响范围最低。       
            可扩展性:考虑未来扩展的可能
                       函数,接口的设计,要考虑未来可能产生的扩展
            一致性:包括模块设计的一致性,以及不同系统中同一模块的一致性
                      模块设计的一致性,要求各个模块采用一致的设计思路,简化设计的复制度,提高可读性和可维护性。
     
    2系统设计要点 
            追求完美,但不镀金
                    要有追求完美的心态,但却不能镀金,过犹不及。
                    注意80:20原则。争取用20%的成本实现80%的功能,而避免用大量的时间解决非重点问题或低概率问题。
            换位思考,从用户角度考虑问题
                    特别对于界面的设计,包括图形和内容的显示。要以一个用户的角度来考虑。操作简单,界面美观,稳定高效等。
            各尽其责
                    理解类和模块的意义,明确每个类和模块的责任和角色。不做不属于它的工作。一旦出现不应该由本类来完成的工作,那么意味着你的模块已经存在缺陷。

    3系统框架结构

    具体每个部分的作用在以下的各个部分进行介绍。

    4MFC基础类职责

            MFC基础类包括应用程序类,主框架类,视图类和文档类。
            应用程序类负责系统初始化,包括检查配置文件信息的有效性,数据库是否能正确连接,系统是否注册等前端工作,以确定是否需要启动系统;
            主框架类负责工具条,状态条,菜单和浮动窗体的管理,并作为整个工程中消息收发的中转站;
            浮动窗体将作为一个容器,以TAB页的方式集成各个模块的信息展示和交互窗口,使得整个系统能有有效的窗口管理,不至于出现浮动窗口满天飞的现象。
            视图类负责响应用户的鼠标和键盘事件,根据当前的操作状态将用户的动作投递给对应的实体模块管理类进行处理。并将结果在视图中进行绘制;
            对于视图的作用,要记住一个原则,它只负责信息的交互,包括接收各种输入,以及相应的信息展示,不进行任何与业务相关的处理,所有业务相关的处理,都必须交由各个业务模块的管理类来完成。 
            文档类负责记录各个实体类对象的实例。
            现在文档类的功能相对弱化,勉强负责业务模块对象的管理。

    5独立模块的组成结构

            每个模块大致包括一个管理类,一个信息窗口类以及若干实体类。
            管理类负责封装实体类对象与外界的交互,接收视图类传递来的鼠标键盘事件并进行调度;
            从抽象层的角度来讲,管理类和视图类有些相似,它是在业务模块中的“视图类”,负责接收外界对模块的请求,并返回业务模块对外部请求的处理结果。 
            信息窗口类用于以数据或图形方式向用户展示实体类对象的信息,并接收用户的输入;
            实体类表述具体的模块业务,可以根据需要分解成更多更具体的子模块。
            信息窗口类和管理类为强关联关系,信息窗口类为管理类的友元类。管理类和信息窗口类都作为业务模块的辅助对象,原则上认为它们都是依赖于业务模块类而存在,因此,将两者作为一个整体。
    6消息机制
            为了降低类之间的耦合度,类之间使用消息进行信息传递。
            发往视图或者浮动窗体的消息,可以通过主框架类进行转发,这样可避免实体类和视图类以及浮动窗体类的强绑定。
            为了避免在业务模块中直接引入当前工程的视图类等类对象,而导致业务模块和当前工程产生强关联的现象,所有业务模块的消息都发往主框架类,然后由主框架类负责转发给各个展示窗口,比如视图、浮动窗口等,它们都是由主框架类进行管理的。 
            为了支持某些特定的功能,系统增加类似的消息反射机制,视图发往具体模块类的鼠标事件如果该模块无具体的操作和变化,那么将把该事件通过消息发送给视图,以便可以进行默认的功能处理。
    7模块设计
            一个模块可以分解为若干个物理类和逻辑类。物理类负责封装数据和对数据的直接的读写和处理方法;逻辑类负责管理和调度物理类。
            物理类之上又可进行抽象,形成基类,充分利用面向对象的方法进行类的设计。
            明确各个类的权利和义务,不做不属于它的工作。这一点可以和公司管理结构相对比来理解。
            类的成员变量和方法,必须明确其属于公有,保护还是私有。成员变量应该提供方法封装读写操作。

    展开全文
  • 程序员Java教程分享如何提升Java技术,第一阶段学习内容,主要包括Java开发介绍、数组、面向对象、常用类、异常、集合、I/O流、多线程、网络、反射,内容还是挺多,老师上课知识讲解还是很丰富,同时也会...

      好程序员Java教程分享如何提升Java技术,第一阶段的学习内容,主要包括Java开发介绍、数组、面向对象、常用类、异常、集合、I/O流、多线程、网络、反射,内容还是挺多的,老师上课的知识讲解还是很丰富的,同时也会拓展一些新的知识及实际应用案例。虽然自己有些计算机基础,但从整个一阶段的学习过程来看,发现知之甚少,更别谈深入挖掘。学习没有捷径可走,也没有天赋一说,对于踏进开发之门记住多背、多记、多练,深入理解可以在以后的工作中慢慢探索及学习。

      大概总结以下几点:

    1.学习中,要会总结学习方法(掌握语法规则,然后举一反三应用)。

    2.在学习的过程中,最好不是仅仅停留在Java表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。

    3.在学习的过程中一定要亲自动手做、试着写代码,而不是只看视频和笔记。很多东西和体会必须自己动手才能真正属于自己。

    4. 在 Java 的学习过程中,可能会遇到形形色色的问题不容易解决,应先学会自己思考解决的问题的办法,然后也可以求助同学及网络。

      最后心态最重要,世上无难事,只怕有心人。

    展开全文
  •  本章首先对Windows驱动程序两个重要数据结构进行介绍,分别是驱动对象和设备对象数据结构。另外还要介绍NT驱动程序和WDM驱动程序入口函数、卸载例程、各种IRP派遣上函数等。  4.1 Windows驱动程序中重要...
  • 无论团队中聚集了多么权威领域专家,但真正了解客户需求的还是客户自己。也许他们很难用语言来表述自己的想法,但有了和现场客户及时沟通,我们才能够在发生变化初始就能够获得第一手资讯。如果事情总要发生...
  • 本附录总结了正文中没有介绍的其他C++操作符,如按位操作符等。 附录F:ddne模板类 本附录总结了string类方法和函数。 附录G:STL方法和函数 本附录总结了STL容器方法和通用的STL算法函数。 附录H:精选读物和...
  • 7.8 this关键字:指向对象自己的引用 177 7.8.1 发现问题:当实例变量和局部变量重名 177 7.8.2 经常深藏不露this关键字 178 7.8.3 在方法中调用方法 179 7.9 构造方法(Constructor) 181 7.9.1 构造...
  • 本附录总结了正文中没有介绍的其他C++操作符,如按位操作符等。 附录F:ddne模板类 本附录总结了string类方法和函数。 附录G:STL方法和函数 本附录总结了STL容器方法和通用的STL算法函数。 附录H:精选读物和...
  • 本附录总结了正文中没有介绍的其他C++操作符,如按位操作符等。 附录F:ddne模板类 本附录总结了string类方法和函数。 附录G:STL方法和函数 本附录总结了STL容器方法和通用的STL算法函数。 附录H:精选读物和...
  • 本附录总结了正文中没有介绍的其他C++操作符,如按位操作符等。 附录F:ddne模板类 本附录总结了string类方法和函数。 附录G:STL方法和函数 本附录总结了STL容器方法和通用的STL算法函数。 附录H:精选读物和...
  • 7.8 this关键字:指向对象自己的引用 177 7.8.1 发现问题:当实例变量和局部变量重名 177 7.8.2 经常深藏不露this关键字 178 7.8.3 在方法中调用方法 179 7.9 构造方法(Constructor) 181 7.9.1 构造...
  • 7.8 this关键字:指向对象自己的引用 177 7.8.1 发现问题:当实例变量和局部变量重名 177 7.8.2 经常深藏不露this关键字 178 7.8.3 在方法中调用方法 179 7.9 构造方法(Constructor) 181 7.9.1 构造...
  • 对我和许多受人尊敬的科学家而言,科学谈的不是大自然的奥秘,或甚至真理,科学只不过是我们用来尝试推敲出基本假设的方式,透过直截了当的逻辑推演,这些假设能解释许多自然现象为何存在。  物理学的能量守恒定律...
  • 这一操作可以通过几种方式来完成,但是 SELECT 语句只显示一种可能(这里ID 是自动生成号码): SQL = "SELECT * FROM Customers WHERE ID BETWEEN " & RNumber & " AND " & RNumber & "+ 9"  注意:以上...

空空如也

空空如也

1 2 3 4 5 6
收藏数 107
精华内容 42
关键字:

介绍的对象好还是自己谈的好