{
  "code": null,
  "collection": "lexicon",
  "href": "https://banes-lab.com/ontology/lexicon#lexicon-extract-adapter",
  "id": "extract-adapter",
  "kind": "technique",
  "layer": {
    "href": "https://banes-lab.com/ontology/schema#layer-structural-core",
    "json": "https://banes-lab.com/json/records/layer/structural-core",
    "label": "Structural Core",
    "markdown": "https://banes-lab.com/records/layer/structural-core.md",
    "ref": "layer:structural-core"
  },
  "name": "Extract Adapter",
  "ref": "lexicon:extract-adapter",
  "relations": [
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology/lexicon#lexicon-category-codebase-system-architecture-styles",
          "json": "https://banes-lab.com/json/records/lexicon-category/codebase-system-architecture-styles",
          "label": "Codebase / System Architecture Styles",
          "markdown": "https://banes-lab.com/records/lexicon-category/codebase-system-architecture-styles.md",
          "ref": "lexicon-category:codebase-system-architecture-styles"
        }
      ],
      "relation": "category"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology#architecture-concrete-coupling",
          "json": "https://banes-lab.com/json/records/architecture/concrete-coupling",
          "label": "Concrete Coupling",
          "markdown": "https://banes-lab.com/records/architecture/concrete-coupling.md",
          "ref": "architecture:concrete-coupling"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-boundary-leakage",
          "json": "https://banes-lab.com/json/records/architecture/boundary-leakage",
          "label": "Boundary Leakage",
          "markdown": "https://banes-lab.com/records/architecture/boundary-leakage.md",
          "ref": "architecture:boundary-leakage"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-framework-leakage",
          "json": "https://banes-lab.com/json/records/architecture/framework-leakage",
          "label": "Framework Leakage",
          "markdown": "https://banes-lab.com/records/architecture/framework-leakage.md",
          "ref": "architecture:framework-leakage"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-vendor-lock-in-leakage",
          "json": "https://banes-lab.com/json/records/architecture/vendor-lock-in-leakage",
          "label": "Vendor Lock-In Leakage",
          "markdown": "https://banes-lab.com/records/architecture/vendor-lock-in-leakage.md",
          "ref": "architecture:vendor-lock-in-leakage"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-anti-corruption-layer",
          "json": "https://banes-lab.com/json/records/architecture/anti-corruption-layer",
          "label": "Anti-Corruption Layer",
          "markdown": "https://banes-lab.com/records/architecture/anti-corruption-layer.md",
          "ref": "architecture:anti-corruption-layer"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-stable-interfaces",
          "json": "https://banes-lab.com/json/records/architecture/stable-interfaces",
          "label": "Stable Interfaces",
          "markdown": "https://banes-lab.com/records/architecture/stable-interfaces.md",
          "ref": "architecture:stable-interfaces"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-backward-compatibility",
          "json": "https://banes-lab.com/json/records/architecture/backward-compatibility",
          "label": "Backward Compatibility",
          "markdown": "https://banes-lab.com/records/architecture/backward-compatibility.md",
          "ref": "architecture:backward-compatibility"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-protocol-compatibility",
          "json": "https://banes-lab.com/json/records/architecture/protocol-compatibility",
          "label": "Protocol Compatibility",
          "markdown": "https://banes-lab.com/records/architecture/protocol-compatibility.md",
          "ref": "architecture:protocol-compatibility"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-interoperability",
          "json": "https://banes-lab.com/json/records/architecture/interoperability",
          "label": "Interoperability",
          "markdown": "https://banes-lab.com/records/architecture/interoperability.md",
          "ref": "architecture:interoperability"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-portability",
          "json": "https://banes-lab.com/json/records/architecture/portability",
          "label": "Portability",
          "markdown": "https://banes-lab.com/records/architecture/portability.md",
          "ref": "architecture:portability"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-protocol-independence",
          "json": "https://banes-lab.com/json/records/architecture/protocol-independence",
          "label": "Protocol Independence",
          "markdown": "https://banes-lab.com/records/architecture/protocol-independence.md",
          "ref": "architecture:protocol-independence"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-low-coupling",
          "json": "https://banes-lab.com/json/records/architecture/low-coupling",
          "label": "Low Coupling",
          "markdown": "https://banes-lab.com/records/architecture/low-coupling.md",
          "ref": "architecture:low-coupling"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-replaceability",
          "json": "https://banes-lab.com/json/records/architecture/replaceability",
          "label": "Replaceability",
          "markdown": "https://banes-lab.com/records/architecture/replaceability.md",
          "ref": "architecture:replaceability"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-interchangeability",
          "json": "https://banes-lab.com/json/records/architecture/interchangeability",
          "label": "Interchangeability",
          "markdown": "https://banes-lab.com/records/architecture/interchangeability.md",
          "ref": "architecture:interchangeability"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-model-inference",
          "json": "https://banes-lab.com/json/records/architecture/model-inference",
          "label": "Model Inference",
          "markdown": "https://banes-lab.com/records/architecture/model-inference.md",
          "ref": "architecture:model-inference"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-adapter-pattern",
          "json": "https://banes-lab.com/json/records/architecture/adapter-pattern",
          "label": "Adapter Pattern",
          "markdown": "https://banes-lab.com/records/architecture/adapter-pattern.md",
          "ref": "architecture:adapter-pattern"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-ports-and-adapters-architecture",
          "json": "https://banes-lab.com/json/records/architecture/ports-and-adapters-architecture",
          "label": "Ports and Adapters Architecture",
          "markdown": "https://banes-lab.com/records/architecture/ports-and-adapters-architecture.md",
          "ref": "architecture:ports-and-adapters-architecture"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-clean-architecture",
          "json": "https://banes-lab.com/json/records/architecture/clean-architecture",
          "label": "Clean Architecture",
          "markdown": "https://banes-lab.com/records/architecture/clean-architecture.md",
          "ref": "architecture:clean-architecture"
        }
      ],
      "relation": "refactors"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology#architecture-category-anti-patterns",
          "json": "https://banes-lab.com/json/ontology/principles/architecture-category-anti-patterns",
          "label": "Anti-patterns",
          "markdown": "https://banes-lab.com/ontology/principles/architecture-category-anti-patterns.md",
          "ref": "chapter:/ontology#architecture-category-anti-patterns"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-category-domain-architecture",
          "json": "https://banes-lab.com/json/ontology/principles/architecture-category-domain-architecture",
          "label": "Domain Architecture",
          "markdown": "https://banes-lab.com/ontology/principles/architecture-category-domain-architecture.md",
          "ref": "chapter:/ontology#architecture-category-domain-architecture"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-category-contracts-interfaces-compatibility",
          "json": "https://banes-lab.com/json/ontology/principles/architecture-category-contracts-interfaces-compatibility",
          "label": "Contracts / Interfaces / Compatibility",
          "markdown": "https://banes-lab.com/ontology/principles/architecture-category-contracts-interfaces-compatibility.md",
          "ref": "chapter:/ontology#architecture-category-contracts-interfaces-compatibility"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-category-portability-infrastructure-deployment",
          "json": "https://banes-lab.com/json/ontology/principles/architecture-category-portability-infrastructure-deployment",
          "label": "Portability / Infrastructure / Deployment",
          "markdown": "https://banes-lab.com/ontology/principles/architecture-category-portability-infrastructure-deployment.md",
          "ref": "chapter:/ontology#architecture-category-portability-infrastructure-deployment"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-category-core-modular-design",
          "json": "https://banes-lab.com/json/ontology/principles/architecture-category-core-modular-design",
          "label": "Core Modular Design",
          "markdown": "https://banes-lab.com/ontology/principles/architecture-category-core-modular-design.md",
          "ref": "chapter:/ontology#architecture-category-core-modular-design"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-category-model-architecture",
          "json": "https://banes-lab.com/json/ontology/principles/architecture-category-model-architecture",
          "label": "Model Architecture",
          "markdown": "https://banes-lab.com/ontology/principles/architecture-category-model-architecture.md",
          "ref": "chapter:/ontology#architecture-category-model-architecture"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-category-structural-patterns",
          "json": "https://banes-lab.com/json/ontology/principles/architecture-category-structural-patterns",
          "label": "Structural Patterns",
          "markdown": "https://banes-lab.com/ontology/principles/architecture-category-structural-patterns.md",
          "ref": "chapter:/ontology#architecture-category-structural-patterns"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-category-codebase-system-architecture-styles",
          "json": "https://banes-lab.com/json/ontology/principles/architecture-category-codebase-system-architecture-styles",
          "label": "Codebase / System Architecture Styles",
          "markdown": "https://banes-lab.com/ontology/principles/architecture-category-codebase-system-architecture-styles.md",
          "ref": "chapter:/ontology#architecture-category-codebase-system-architecture-styles"
        }
      ],
      "relation": "linked-from"
    }
  ],
  "summary": "A technique for moving the code that talks to a framework, vendor or protocol into an adapter behind a port.",
  "siblings": {
    "next": {
      "href": "https://banes-lab.com/ontology/lexicon#lexicon-move-framework-outward",
      "json": "https://banes-lab.com/json/records/lexicon/move-framework-outward",
      "label": "Move Framework Outward",
      "markdown": "https://banes-lab.com/records/lexicon/move-framework-outward.md",
      "ref": "lexicon:move-framework-outward"
    },
    "previous": {
      "href": "https://banes-lab.com/ontology/lexicon#lexicon-introduce-port",
      "json": "https://banes-lab.com/json/records/lexicon/introduce-port",
      "label": "Introduce Port",
      "markdown": "https://banes-lab.com/records/lexicon/introduce-port.md",
      "ref": "lexicon:introduce-port"
    }
  },
  "up": {
    "href": null,
    "json": "https://banes-lab.com/json/api/records/lexicon",
    "label": "Lexicon terms",
    "markdown": "https://banes-lab.com/api/records/lexicon.md",
    "ref": "api:records/lexicon"
  },
  "aliases": []
}
