(1)抽象
在定义一个类的时候,实际上就是把一类事物的公有的属性和行为提取出来,造成一个物理模型,这种研究问题的方法称为抽象。接口和抽象类实际就是抽象的体现,以系统的用户类为例,定义了用户注册、查询等接口,在后期若是用户有新的需求,能够进行扩充。
(2)强内聚/弱耦合/模块化
在设计的过程当中,咱们将整个项目分为公寓管理员、系统管理员、学生、宿舍管理等模块,每一个大的模块在具体实现过程当中又被分为多个小模块,尽可能使得各模块之间以及模块内部实现高内聚低耦合。内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当刚好作一件事。它描述的是模块内的功能联系; 耦合是软件结构中各模块之间相互链接的一种度量,耦合强弱取决于模块间接口的复杂程度、进入或访问一个模块的点以及经过接口的数据。
(3)信息隐藏和封装
在面向对象的方法中,信息隐藏经过对象的封装性来实现。信息封装就是将模块设计成"黑箱",实现的细节隐藏在模块内部,不让模块的使用者直接访问。一个模块不须要知道另一个模块的内部状况,你能够有效的解除组成系统个模块之间的耦合关系,使这些模块能够独立开发、测试、优化、修改、理解,这样能够加快系统开发的速度,由于这些模块能够并行开发。它也减轻了维护的负担,由于咱们能够更加快速地理解这些模块,并在调用的时候不影响其余模块。并且信息隐藏和封装也提升了软件的可重用性和可维护性。
(4)界面和实现的分离
界面来接收用户所输入的数据,根据用户的需求,在实现模块来处理用户所输入的数据,而后再将根据用户需求获得的数据输出到用户界面上。git