Skip to content

Instantly share code, notes, and snippets.

View sunmeat's full-sized avatar
🐈
MEOW

Oleksandr Zahoruiko sunmeat

🐈
MEOW
View GitHub Profile
@sunmeat
sunmeat / Program.cs
Created May 23, 2024 12:47
SRP nice example C#
class Product
{
// ...
}
class Order // работа с заказом
{
// ...
public void Calculate() { }
public void AddItem(Product product) { }
@sunmeat
sunmeat / Program.cs
Created May 23, 2024 12:42
SRP bad example C#
class Product
{
// ...
}
class Order
{
// ...
public void Calculate() { } // работа с составляющими заказа
public void AddItem(Product product) { Console.WriteLine("Item was added!"); }
@sunmeat
sunmeat / Program.cs
Created May 23, 2024 12:23
composition C# example
class PegLeg // деревянная нога
{
public string Color { get; set; } // brown will be OK
public bool Dirty { get; set; } // yes / no
public double Length { get; set; } // inches
public int Usability { get; set; } // 0 - 100%
public PegLeg()
{
Console.WriteLine("Peg Leg C-TOR!");
@sunmeat
sunmeat / Program.cs
Created May 23, 2024 12:20
aggregation C# example
class Hat
{
public string Color { get; set; }
public string Model { get; set; }
public double Price { get; set; }
}
class Person
{
public string? Name { get; set; }
@sunmeat
sunmeat / Program.cs
Created May 23, 2024 12:18
C# assossiation example
class Person
{
public string? Name { get; set; } // ассоциация (поле с типом другого класса)
public string? Surname { get; set; }
public string SaySomething() // ассоциация (возврат значения с типом другого класса, string)
{
string? local = "всем уже привет"; // ассоциация (локальная переменная с типом другого класса)
return local;
}
@sunmeat
sunmeat / main.cpp
Created April 25, 2024 17:02
задание на объектную декомпозицию для группы ПВ26
// как известно,
// основная задача проектирования при объектной декомпозиции - это выполнение двух условий.
// условия удачной объектной декомпозиции:
// - высокое сцепление (high cohesion): максимизация связей внутри классов
// - низкая связанность (low coupling): минимизация (ослабление, гибкость) связей между классами
// ДЗ на весенние каникулы:
// 1) отдохнуть, набраться сил :)
// 2) выполнить объектную декомпозицию по отношению к классу Student (код представлен ниже)
@sunmeat
sunmeat / student.cpp
Created March 29, 2024 11:26
задание для группы КНД-221
class Student {
char* firstname; // имя студента
int firstname_length; // сколько символов в имени
char* surname; // фамилия студента
int surname_length; // сколько символов в фамилии
char* lastname; // отчество студента
int lastname_length; // сколько символов в отчестве
char* country; // страна
int country_length;
char* region; // область
@sunmeat
sunmeat / main.cpp
Last active April 17, 2024 11:04
cpp console app and php integration (http example) curl
#include <iostream>
#include <curl/curl.h>
#include <string>
using namespace std;
/*
1) заходим на https://github.com/microsoft/vcpkg
2) качаем архив (code > download)
3) распаковываем архив, переносим файлы в C:\vcpkg
4) запускаем bootstrap-vcpkg.bat, в папке сформируется vcpkg.exe
@sunmeat
sunmeat / different files
Created February 1, 2024 09:27
android + facebook integration example (login + post text + post photo)
AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
...
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
...
@sunmeat
sunmeat / different files
Created January 29, 2024 19:37
live data android example
/* вместо AsyncTask был использован Thread для выполнения операций в фоновом режиме в MainViewModel.
также, для обновления UI с использованием LiveData, был использован Handler для отправки сообщений в основной поток */
MainActivity.java:
package com.sunmeat.async;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.widget.Button;