zoukankan      html  css  js  c++  java
  • 类型与关系是分解与组合面对的主要元素

    抽象方法一般有两个分解decomposition和组合composition,这两种方法的方向正好相反,分解是将整体分解为部分,而组合是将部分组合成整体。

    在软件架构设计和编码中,我们经常快速灵活使用这两种方法,比如将一个类分解为多个小类,将一个方法分解为多个方法,或者将几个类合成一个类一起调用,GoF设计模式中有不少模式是展示这两种方法的使用,比如桥模式或适配器模式是将几个类组合在一起调用。

    分解和组合经常结合在一起使用,实际就是拆了装,装了拆,如同玩玩具一样,只不过每一次拆装都是有具体依据。

    分解组合实际是一种虚拟重建方法,将现实世界中的模型使用抽象符号分解为一个个基本元素,然后再使用“关系”将它们组合在一起形成一个稳定的结构,形成结构后一个系统就具备了初步的形态。生命正在孕育之中。

    以上主要是软件中的分解和组合使用,其实这两种方法适合更广泛的思维方式,分解思维能够让人不断研究细节,比如西医治病采取的是分解思维,肝脏有病就解剖肝脏,直至分解到细胞;而中医是采取组合方法,肝脏有病寻找与其有关系的肾脏进行补养,中医依据的五行水木金火土代表一种关系,肝脏代表木,而肾脏是水,水生木,也就是水能够滋养植物,所以,中医才采取补肾的方式治肝。

    由此可见,类型与关系是分解与组合面对的主要元素,一个大的事物分解为不同类型的小事物,相同类型的事物可以合并成一组类型,分解时尽量切断各种关系,除非是高聚合的组成关系,也就是缺一不可的关系,这样才能孤立事物,研究事物;而组合是拉关系,通过关系将不同事物组装在一起。如果反映到数据库建模上,就是先建数据表,再找外键关系。

     

    http://www.jdon.com/46793

  • 相关阅读:
    java设计模式----工厂模式
    使用.Net Core Mvc +SqlSugar +Autofac+AutoMapper+....
    使用 Date 和 SimpleDateFormat 类表示时间
    .Net Core 3.0 IdentityServer4 快速入门02
    .Net Core 3.0 IdentityServer4 快速入门
    微信小程序支付
    微信小程序集成腾讯云 IM SDK
    架构杂谈《十》
    架构杂谈《九》
    架构杂谈《八》
  • 原文地址:https://www.cnblogs.com/feng9exe/p/8244747.html
Copyright © 2011-2022 走看看