- Выделение частного класса данных
-
Эта статья слишком короткая. Пожалуйста, дополните её ещё хотя бы несколькими предложениями и уберите это сообщение. Если статья останется недописанной, она может быть выставлена к удалению. Для указания на продолжающуюся работу над статьёй используйте шаблон {{subst:L}}.
Администраторам: эта пометка оставлена Ink 07:07, 20 апреля 2011 (UTC). Просьба очень короткие заготовки статей ранее чем через два дня после создания не удалять.Шаблон проектирования Выделение частного класса данных Описан в Design Patterns Нет
Выделение частного класса данных используется для сокрытия атрибутов и их манипуляциям. Частный случай рефакторинга[неизвестный термин] «Extract Class» (Выделение класса)
Пример реализации на C#namespace Private_class_data { class Program { static void Main(string[] args) { var radius = new double(); var color = new Color(); var origin = new Point(); var circle_before = new before.Circle(radius, color, origin); var circle_after = new after.Circle(radius, color, origin); } } class Color { } class Graphics { } class Point { } } namespace Private_class_data.before { class Circle { private double radius; private Color color; private Point origin; public Circle(double radius, Color color, Point origin) { this.radius = radius; this.color = color; this.origin = origin; } public double Circumference { get { return 2 * Math.PI * this.radius; } } public double Diameter { get { return 2 * this.radius; } } public void Draw(Graphics graphics) { //... } } } namespace Private_class_data.after { class CircleData { private double radius; private Color color; private Point origin; public CircleData(double radius, Color color, Point origin) { this.radius = radius; this.color = color; this.origin = origin; } public double Radius { get { return this.radius; } } public Color Color { get { return this.color; } } public Point Origin { get { return this.origin; } } } class Circle { private CircleData circleData; public Circle(double radius, Color color, Point origin) { circleData = new CircleData(radius, color, origin); } public double Circumference { get { return 2 * Math.PI * this.circleData.Radius; } } public double Diameter { get { return 2 * this.circleData.Radius; } } public void Draw(Graphics graphics) { //... } } }
См. также
Литература
Шаблоны проектирования Основные Порождающие Структурные Адаптер • Выделение частного класса данных • Декоратор • Заместитель • Компоновщик • Мост • Приспособленец • Фасад
Поведенческие Интерпретатор • Итератор • Команда • Наблюдатель • Посетитель • Посредник • Состояние • Стратегия • Хранитель • Цепочка обязанностей • Шаблонный метод
Блокировка с двойной проверкой • Однопоточное выполнение • Планировщик структурные шаблоны проектирования адаптер | мост | компоновщик | декоратор | фасад | заместитель | приспособленец | Выделение частного класса данных
Для улучшения этой статьи желательно?: - Дополнить статью (статья слишком короткая либо содержит лишь словарное определение).
- Найти и оформить в виде сносок ссылки на авторитетные источники, подтверждающие написанное.
Категории:- Шаблоны проектирования
- Программирование
Wikimedia Foundation. 2010.