«object-oriented» 태그된 질문

시스템을 모듈 방식으로 제어 및 조작 할 수있는 일련의 객체로 모델링 할 수있는 방법론

4
논리적으로 절차적인 소프트웨어를 OO 언어로 작성하는 가장 깨끗한 방법
나는 전기 기술자이고 내가 무슨 짓을하는지 모르겠습니다. 내 코드의 미래 관리자를 저장하십시오. 최근에는 기능이 논리적으로 "절차 적"인 여러 개의 작은 프로그램 (C #)을 작업하고 있습니다. 예를 들어, 그중 하나는 다른 데이터베이스에서 정보를 수집하고 해당 정보를 사용하여 일종의 요약 페이지를 생성 한 후 인쇄 한 다음 종료하는 프로그램입니다. 이 모든 것에 …

5
메서드 매개 변수 대신 생성자에 데이터를 전달할 때 클래스 개념이 어떻게 변경됩니까?
파서를 만들고 있다고 가정 해 봅시다. 한 가지 구현은 다음과 같습니다. public sealed class Parser1 { public string Parse(string text) { ... } } 또는 대신 텍스트를 생성자에 전달할 수 있습니다. public sealed class Parser2 { public Parser2(string text) { this.text = text; } public string Parse() { ... } …

7
객체 지향 언어에서 객체는 언제 자체 작업을 수행해야하며 언제 객체에서 작업을 수행해야합니까?
Page페이지 렌더러에 대한 명령 세트를 나타내는 클래스 가 있다고 가정 하십시오. 그리고 Renderer화면에 페이지를 렌더링하는 방법을 알고 있는 클래스 가 있다고 가정 합니다. 두 가지 다른 방식으로 코드를 구성 할 수 있습니다. /* * 1) Page Uses Renderer internally, * or receives it explicitly */ $page->renderMe(); $page->renderMe($renderer); /* * 2) …

2
모든 주요 OOP 기능을 잃지 않고 OOP에서 불변성을 실제로 사용할 수 있습니까?
프로그램의 객체를 변경할 수없는 이점이 있습니다. 내 응용 프로그램에 대한 좋은 디자인에 대해 깊이 생각할 때 종종 불변의 많은 객체에 자연스럽게 도달합니다. 종종 모든 객체를 불변 으로 만들고 싶습니다 . 이 질문 은 동일한 아이디어를 다루지 만 불변성에 대한 좋은 접근 방법과 실제로 사용하는 시점에 대한 대답은 없습니다. 좋은 불변 …

6
비 OO에서 어떻게 프로그래밍됩니까? [닫은]
폐쇄되었습니다 . 이 질문은 의견 기반 입니다. 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 이 게시물 을 편집 하여 사실과 인용으로 답변 할 수 있도록 질문을 업데이트하십시오 . 휴일 2 년 전 . 다른 패러다임 에 찬성하여 OOP의 단점에 대한 scathing 기사를 읽으면서 너무 많은 결함을 찾을 수없는 예를 들었습니다. …

5
서브 클래스 유형을 요구하지 않는 좋은 설계 방법은 무엇입니까?
프로그램이 객체의 클래스를 알아야 할 때 일반적으로 디자인 결함을 나타내므로 이것을 처리하는 좋은 방법이 무엇인지 알고 싶습니다. Circle, Polygon 또는 Rectangle과 같이 상속 된 다른 하위 클래스로 Shape 클래스를 구현하고 있으며 Circle이 Polygon 또는 Rectangle과 충돌하는지 알 수있는 다른 알고리즘이 있습니다. 그런 다음 Shape의 두 인스턴스가 있고 하나가 다른 인스턴스와 …

7
OO 언어로 객체 상태를 구현합니까?
나는 자동차 경주를 시뮬레이트하는 기본 코드 머신의 구현을 포함하는 Java 코드를 받았다. 이것은 고전적인 컴퓨터 과학 상태 머신이 아니라 여러 상태를 가질 수 있고 일련의 계산을 기반으로 상태를 전환 할 수있는 객체 일뿐입니다. 문제를 설명하기 위해 자동차 상태에 대한 일부 상수 (예 : OFF, IDLE, DRIVE, REVERSE 등)를 정의하는 중첩 …

3
'직원'수업은 어떻게 디자인해야합니까?
직원 관리를위한 프로그램을 만들려고합니다. 그러나 Employee수업 을 디자인하는 방법을 알 수는 없습니다 . 저의 목표는 Employee객체를 사용하여 데이터베이스에서 직원 데이터를 생성하고 조작 할 수 있도록하는 것입니다. 내가 생각한 기본 구현은 다음과 같습니다. class Employee { // Employee data (let's say, dozens of properties). Employee() {} Create() {} Update() {} Delete() …

5
UI에 진행 상황을보고하기위한 최상의 전략-콜백은 어떻게 발생합니까?
때때로 사용자는 실행하는 데 시간이 걸리는 확장 된 기술 작업을 시작합니다. 이 경우 일반적으로 현재 진행중인 작업에 대한 정보와 함께 진행률 표시 줄을 표시하는 것이 좋습니다. UI와 논리 계층을 밀접하게 연결하지 않으려면 일반적으로 일종의 프록시를 통해 통신하는 것이 가장 좋습니다. 즉, 백엔드는 자체 UI 요소를 조작하거나 중개 계층과 직접 상호 …

2
모범 사례에서 건조 원칙?
가능한 한 열심히 프로그래밍에서 DRY 원칙을 따르려고합니다. 최근에는 OOP에서 디자인 패턴을 배우고 있었고 꽤 많은 것을 반복했습니다. 지속성을 처리하기 위해 팩토리 및 게이트웨이 패턴과 함께 리포지토리 패턴을 만들었습니다. 내 응용 프로그램에서 데이터베이스를 사용하고 있지만 원하는 경우 게이트웨이를 교체하고 다른 종류의 지속성으로 전환 할 수 있기 때문에 중요하지 않습니다. 내가 스스로 …

2
인스턴스가 하나만있는 Python 클래스 : (단일) 클래스 인스턴스를 언제 작성해야합니까?
한 번만 인스턴스화되는 파이썬 클래스가 주어지면 클래스의 객체가 하나뿐입니다. 어떤 경우에 클래스와 직접 작업하는 대신 단일 클래스 인스턴스를 만드는 것이 타당한 지 궁금합니다. 비슷한 질문 이 있지만 다른 초점을 가지고 있습니다. 전역 변수와 함수를 클래스로 그룹화하고 파이썬 전용이 아닙니다. 후자는 (파이썬에서) 클래스도 객체라는 사실을 고려하지 않습니다. 최신 정보: 파이썬에서는 클래스와 …

5
이 시나리오에서 구성 또는 상속을 선호해야합니까?
인터페이스를 고려하십시오. interface IWaveGenerator { SoundWave GenerateWave(double frequency, double lengthInSeconds); } 이 인터페이스는 다양한 모양 (예 : SineWaveGenerator및 SquareWaveGenerator)의 파도를 생성하는 여러 클래스로 구현됩니다 . SoundWave원시 사운드 데이터가 아닌 음악 데이터를 기반으로 클래스를 생성하고 싶습니다 . 비트 이름 (초가 아님)으로 메모의 이름과 길이를 수신하고 내부적으로 IWaveGenerator기능을 사용하여 SoundWave그에 따라 작성합니다 …

4
“OOP가 상태를 숨 깁니다”란 무엇입니까? [닫은]
폐쇄되었습니다 . 이 질문은 의견 기반 입니다. 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 이 게시물 을 편집 하여 사실과 인용으로 답변 할 수 있도록 질문을 업데이트하십시오 . 휴일 오년 전에 . 에서 cat-v.org에 많은 안티 OOP의 호언 장담 한 I 조 암스트롱에 의해 통로 중 하나가 다음되었으며, OOP 모델에 …

5
항상 내부 데이터 구조를 완전히 캡슐화해야합니까?
이 수업을 고려하십시오 : class ClassA{ private Thing[] things; // stores data // stuff omitted public Thing[] getThings(){ return things; } } 이 클래스는 데이터를 저장하는 데 사용하는 배열을 관심있는 클라이언트 코드에 노출합니다. 작업중 인 앱 에서이 작업을 수행했습니다. 나는 ChordProgression일련의 Chords 를 저장하고 다른 것들을 하는 클래스를 가지고있었습니다 . …

6
적절한 디자인으로 쉽게 만들 수없는 변화는 무엇입니까?
이것은 다소 모호한 질문이지만 적절한 디자인에 대해 읽을 때 만족스럽지 못한 느낌을 받았습니다. 일반적으로 객체 지향 프로그래밍, 추상화, 팩토링 등을 배우면 디자인의 성배-그리고 그들이 항상 개발 기술을 사용한다고 주장하는 이유는 프로그램을 "쉬운 변경하기"만드는 것입니다. , "유지 가능", "유연성"또는 이러한 생산적인 사운드 개념을 표현하는데 사용되는 동의어 중 하나. ivar를 비공개로 표시하고 …

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.