대상을 향한 개념과 기본 특징

4875 단어

1, 무엇이 대상을 향한 것입니까?


모든 사람의 마음속에 햄릿이 있듯이, 모든 사람은 대상을 향한 다른 이해를 가지고 있다
이른바 대상을 대상으로 하는 것은 대상 개념을 바탕으로 대상을 중심으로 하고 유형과 계승을 구조 체제로 하여 객관적인 세계를 인식하고 이해하며 묘사하고 해당하는 소프트웨어 시스템을 구축하는 것이다.
OO(Object Oriented, 대상을 향해)는 현재 컴퓨터계의 관심의 중점으로 90년대 소프트웨어 개발의 주류였다.대상을 대상으로 하는 개념과 응용은 이미 프로그램 설계와 소프트웨어 개발을 초월하여 매우 넓은 범위로 확장되었다.예를 들어 데이터베이스 시스템, 상호작용 인터페이스, 응용 플랫폼, 분포식 시스템, 네트워크 관리 구조, CAD 기술, 인공지능 등 분야.
OO 방법(Object-Oriented Method, 대상을 대상으로 하는 방법)은 대상을 대상으로 하는 실현을 소프트웨어 개발 과정에서 응용하고 개발 활동을 지도하는 시스템 방법으로 OO(Object-Oriented) 방법이라고 약칭한다. Object Oriented는'대상'개념을 바탕으로 하는 방법학이다.대상은 데이터와 허용된 조작으로 구성된 봉인체로 객관적인 실체와 직접적인 대응 관계를 가진다. 하나의 대상 유형은 서로 아는 성격을 가진 그룹의 대상을 정의한다.모든 계승성은 차원 관계를 가진 유형의 속성과 조작을 공유하는 방식이다.이른바 대상을 대상으로 하는 것은 대상 개념을 바탕으로 대상을 중심으로 하고 유형과 계승을 구조 체제로 하여 객관적인 세계를 인식하고 이해하며 묘사하고 해당하는 소프트웨어 시스템을 구축하는 것이다.
(js에서 대상을 대상으로 하는 특징을 소개한 다음에 대상을 대상으로 하는 방법을 계속 소개할 것이다. 한 마디로 어떤 일을 대상으로 하는 방법을 설명하고 대상을 대상으로 하는 방법에 대해 더욱 깊이 있게 이해하도록 한다!)

2, JS의 객체 지향 기본 특징


대상을 향한 세 가지 기본 특징은 봉인, 계승, 다태이다.js에서 대상을 대상으로 봉인과 계승만 있고 다태는 없습니다.
봉인: 한 방법이나 속성을 사적으로 성명함으로써 대상의 세부 사항을 다른 대상에게 비밀로 하고 대상 간의 결합 정도를 낮출 수 있으며 데이터의 완전성을 유지하고 수정 방식을 제약할 수 있다. 그러면 코드를 더욱 신뢰할 수 있고 디버깅하기 쉽다.포장은 대상을 대상으로 하는 디자인의 초석이다.
JavaScript는 구성원을 공용으로 선언하거나 사적으로 사용하는 내부 메커니즘이 없기 때문에 우리는 스스로 이러한 특성을 실현할 수 밖에 없다.다음은 완전한 코드를 통해 무엇이 사유 속성과 방법, 무엇이 특권 속성과 방법, 무엇이 공유 속성과 방법, 무엇이 공유 정적 속성과 방법인지 분석하고자 한다.
사유 정적 속성과 방법: 함수는 작용역이 있습니다. 함수 내에서var 키워드로 설명된 변수는 외부에서 접근할 수 없습니다. 사유 속성과 방법의 본질은 대상 외부에서 접근할 수 없는 변수입니다.
특권 속성과 방법: 속성과 방법을 만들 때 사용하는this 키워드입니다. 이러한 방법은 구조기의 역할 영역에 정의되어 있기 때문에 개인 속성과 방법에 접근할 수 있습니다.개인 구성원을 직접 방문해야 하는 방법만이 특권 방법으로 설계되어야 한다.
공유 속성과 방법: 원형prototype에 직접 쓴 속성과 방법은 구조기 내의 개인 구성원에 접근할 수 없고 특권 구성원에 접근할 수 있으며 하위 클래스는 모든 공유 방법을 계승할 수 있다.
공유 정적 속성과 방법: 가장 잘 이해하는 방법은 그것을 하나의 명명 공간으로 상상하는 것이다. 실제로는 구조기를 명명 공간으로 사용하는 것과 같다.
 /* --   -- */
    var _packaging =function(){
       // 
      var name ='Darren';
       var method1 =function(){
          //...
       }
       // 
       this.title ='JavaScript Design Patterns' ;
      this.getName =function(){
         return name;
      }
   }
   // 
   _packaging._name ='Darren code';
   _packaging.alertName =function(){
      alert(_packaging._name);
   }
   // 
   _packaging.prototype = {
      init:function(){
         //...
      }
   }

계승: 계승은 이러한 능력을 가리킨다. 그는 기존 클래스의 모든 기능을 사용할 수 있고 원래의 클래스를 다시 작성할 필요가 없는 상황에서 이러한 기능을 확장할 수 있다.
상속을 통해 만들어진 새로운 클래스를 '하위 클래스' 또는 '파생 클래스' 라고 부른다.
계승된 클래스를'기류','부류'또는'초류'라고 부른다.
① 구조 함수 귀속
이 방법은 가장 간단하다. 콜이나 apply 방법을 사용하여 부모 대상의 구조 함수를 하위 대상에 연결하고 하위 대상 구조 요소에 코드를 한 줄 추가한다.
부류 구조 함수 이름.apply(this, arguments);
Person.prototype.getName = function(){
    returnthis.name;
}
function Programmer(name,sex) {
    Person.call(this,name);  // 
    this.sex = sex;
}

②원형적 계승은 자류의prototype 대상이 부류를 가리키는 실례로 자류의prototype 대상의 원래 값을 완전히 삭제하는 것과 같다. 그러나 우리는 원형적 계승 js문장 뒤에 단락 코드인 자류를 추가해야 한다.prototype.constructor = 자류, 그렇지 않으면 자류의 원형 대상의 구조 함수 속성은 계승된 부류prototype의 constructor(부류의 원형을 직접 계승할 때)를 가리키며, 부류의 실례를 계승할 때 constructor 속성을 잃어버리고, 계승이 끝난 후에 이 자류의 실례도 부류의prototype의 방법을 계승할 수 있다.
   // 
    function Parent(name) {
 		this.name = name;
 	}
 	Parent.prototype.sayHello = function() {
 		console.log("hello");
 	}
 	function Son(name) {
 		this.name = name;
 	}
 	Son.prototype = Parent.prototype;
 	Son.prototype.constructor = Son;// Son.prototype.constructor Parent
 	var s = new Son();
 	s.sayHello()//hello
//   
 	function Parent(name) {
 		this.name = name;
 	}
 	Parent.prototype.sayHello = function() {
 		console.log("hello");
 	}
 	function Son(name, age) {
 		this.name = name;
 		this.age = age;
 	}
 	Son.prototype.sayHi = function() {
 		console.log("hi");
 	}
 	Son.prototype = new Parent(); // 
 	Son.prototype.constructor = Son;// Son.prototype.constructor 
 	var s = new Son();
 	var p = new Parent();
 	s.sayHello()//hello
 	console.log(Son.prototype)
 	p.sayHi()// Uncaught TypeError: p.sayHi is not a function, 

js의 대상 구성
방법-함수:과정,동적 속성-변수:상태,정적
다음은 다른 사람이 대상을 향한 사상을 묘사하는 것을 열거한다
1, 하나의 데이터 구조와 그들을 처리하는 방법으로 대상(object)을 구성하고 같은 대상을 클래스(class)로 귀납하며, 클래스의 봉인(encapsulation)을 통해 내부 세부 사항을 숨기고, 계승(inheritance)을 통해 클래스의 특화(specialization)/일반화(generalization), 다중화(polymorphism)를 통해 대상 유형을 바탕으로 하는 동적 분배(dynamic dispatch)를 실현한다.
2, 후속 확장 코드 도입을 최대한 낮추는 side-effect 가능한 코드 조직 수단
3, 봉인: 속성치, 빨간색, 파란색 줄, 공격, 위치 이동, 스킬 방출, 청병, 유주 등 행위를 모두 한 영웅 안에 넣는다.
, 계승: 공격 +10 장비는 공격 +20까지 승급가능, 이후에는 공격 +30까지 승급가능, 흡혈 효과가 있습니다.어떤 레벨업으로 승급하든지 공격+10 이 부분 속성을 지니고 있습니다.
다태: 한 팀은 하나의 보조를 필요로 한다. 우리는 하나의 보조영웅만 필요로 한다. 어떤 보조영웅이 오는지 관심이 없다. 피를 넣을 수 있으면 된다.
이 세 가지 특성을 가진 프로그래밍 사상을 대상을 향한다고 한다.

좋은 웹페이지 즐겨찾기